Map、Filter以及Reduce在函数式编程中非常常见。
在所有有这些函数的语言中,只有Clojure有在map上添加多个列表的能力,例如- (map + lst1 lst2),这是最有用的功能之一!
但是为什么不能在Filter上执行同样的操作呢?例如-
(filter (fn [a1 b1] (pos? (+ a1 b1))) [1 2 3] [-2 4 0])
将会得到错误信息“将3个参数传递给clojure.core/filter时参数数不正确”。
我假设这不是常见的做法有它的原因,但我很难理解其中原因。
谢谢!