【发布时间】:2015-08-24 15:31:44
【问题描述】:
我发现自己需要一个类似于some-fn 的函数,但它结合了接受多个参数的谓词。
新函数应该采用一组谓词并返回一个函数f。函数f 应该返回由其组成谓词之一返回的第一个逻辑真值应用于f 的所有参数,否则为逻辑假。所以我应该能够做到这一点:
((some-fn* < >) 1 2)
=> truthy
((some-fn* < >) 1 1)
=> falsey
很容易实现:
(defn some-fn* [& fs]
(fn [& args] (loop [fs fs]
(when (seq fs)
(or (apply (first fs) args)
(recur (rest fs)))))))
但是看起来这么简单的东西应该已经存在于 clojure.core 中了。可以?还是有更简单的方法来实现我的需要?
【问题讨论】:
标签: clojure