这个问题类似于说,在clojure中,如何将“和”应用于列表?,但解决方案不适用于我的问题。every?
函数只返回一个布尔值。
or
是一个宏,所以这段代码是无效的:
(apply or [nil 10 20]) ; I want to get 10 here, as if 'or was a function.
使用not-every?
我只会得到布尔值,但我想保留语义or
- “真”元素应该是表达式的值。这样做的惯用方法是什么?
到目前为止我的想法:
(first (drop-while not [nil 10 20])) ; = 10