以下代码
(let [coll [1 2 3 4 5]
filters [#(> % 1) #(< % 5)]]
(->> coll
(filter (first filters))
(filter (second filters))))
给我
(2 3 4)
哪个很棒,但是如何在coll中应用所有过滤器而不必显式命名呢?
可能存在完全更好的方法,但是理想情况下,我想知道一个可以替换(过滤器(第一个过滤器))(过滤器(第二个过滤器))的表达式。
谢谢!
最佳答案
Clojure 1.3具有一个新的 every-pred
函数,您可以这样使用它:
(filter (apply every-pred filters) coll)
关于clojure - 在Clojure的鹅口疮中将多个过滤器应用于集合,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6927983/