Clojure:如何在“reduce”中使用“and”?

int*_*tar 1 reduce boolean clojure

“and”似乎是一个宏,所以我不能在类似的东西中使用它 (reduce and list-of-booleans)

我应该怎么做?

cor*_*ump 5

你可以像这样将它包装成一些 lambda。

user=> (reduce (fn [a b] (and a b)) '(true true true))
true
user=> (reduce (fn [a b] (and a b)) '(true true false))
false
Run Code Online (Sandbox Code Playgroud)

当然,你根本不需要reduce,你必须使用every?:

user=> (every? true? '(true false true))
false
Run Code Online (Sandbox Code Playgroud)