【发布时间】:2015-11-01 11:04:56
【问题描述】:
假设我有一个函数 f ,它返回一个 n 元组序列和一个谓词 p ,它接受 n 个参数 - 我如何过滤 f 以获得一个仅包含那些 p 应用于元组每个元素的元组的序列真的吗?
例如,说 f 被定义为返回一个对的序列
(defn f [] (for [a (range 1 10) b (range 1 10)] [a b]))
and p 接受两个参数,如果相等则返回 true
(defn p [a b] (= a b))
我想做这样的事情
(filter p (f))
但是编译器会抛出 ArityException,因为 p 有两个参数,并且序列中的每个元素都被认为是一件事(尽管是一对)。
【问题讨论】:
标签: clojure