Clojure中是否存在 and or 的非宏版本?

更新:在这种情况下,我不在乎短路。

最佳答案

or

函数 some “为coll中的任何x返回(pred x)的第一个逻辑真值,否则返回nil。”

因此,您可以将(some identity coll)用作or。请注意,当最后一个值为or时,其行为将与false不同:它将返回nil,而or将返回false

and

如果您不需要知道coll向量中最后一个形式的值,则可以将(every? identity coll)用作and。这与and宏的行为不同,如果所有参数都为真,则返回true。如果您需要最后一张表格的结果,请参阅larsmans的答案。

关于clojure - Clojure "and"和 "or"的非宏版本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5531964/

10-14 15:39
查看更多