2
我發現自己需要一個類似於some-fn
的函數,但它組合了帶多個參數的謂詞。多個參數的`some-fn`的變體
新函數應該帶一組謂詞並返回一個函數f
。函數f
應返回由其構成謂詞之一返回的第一個邏輯真值,該值適用於所有f
的參數,否則返回邏輯false。所以,我應該能夠做到這一點:
((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已經存在這樣一個簡單的事情。可以?還是有一種更簡單的方法來實現我所需要的?