clojurescript`和`函数与整数的行为令人困惑

a p*_*a p 3 integer boolean clojurescript

可能只是在这里展示我对lisp(s)的无知,但是我对ClojureScript的and函数有一些奇怪的结果:

(and true false) ; false
(and false true) ; false
(and 1 0)        ; 0
(and 0 1)        ; 1 !?
Run Code Online (Sandbox Code Playgroud)

这里发生了什么?我至少期待对称; 这与位存储truefalse?有关吗?

Bar*_*mar 7

and如果所有参数都是真实的,则返回它的最后一个参数,否则它返回false(它一旦到达第一个假值,它也会停止计算参数).在Clojure中,与Javascript不同,0并且1都是真实的.Clojure中唯一的假值是falsenil.

http://blog.jayfields.com/2011/02/clojure-truthy-and-falsey.html