Map、Filter和Reduce在函数式编程中非常常见。
在所有具有这些函数的语言中,只有Clojure具有在map中添加多个列表的能力。例如:(map + lst1 lst2),这非常有用!
但是为什么不能用Filter进行相同的操作?例如-
(filter (fn [a1 b1] (pos? (+ a1 b1))) [1 2 3] [-2 4 0])
将会导致 "Wrong number of args(3) passed to clojure.core/filter"(传递给 clojure.core/filter 的参数数量错误)。
我认为这肯定有原因,但不明白为什么这会成为常见的做法。
谢谢!