我有一系列的值。我想知道他们中的任何一个是否评估为真。如何在Clojure中应用'或'?
(def input [nil nil nil 1 nil 1])
我想要做这样的事情:
(apply or input)
但我不能因为or
is a macro不是一个函数。同样,这将不起作用
(reduce or input)
我写我自己的
(def orfn #(if %1 %1 %2))
现在这个工作
(reduce orfn input)
一样这种方法稍有不同,虽然它只是试验nil
。
(not (every? nil? input))
apply or
或同等产品的“正确”方式是什么?
在一般情况下[这可以帮助](http://stackoverflow.com/questions/9273333/in-clojure-how-to-apply-a-macro-to-a-list) – soulcheck
非常感谢@soulcheck 。我认为,我遇到的问题的最佳解决方案是“一些”。 – Joe