我有两套:
#{1 2 3}
和#{7 8 3}
我想创建一个只返回每个集合的共享值的函数,3。
我不能使用交集;它不适用于我当前版本的clojure。
谢谢!
答案 0 :(得分:5)
只要我记得,clojure.set/intersection
功能一直存在,你确定你正确使用它吗?这绝对有效:
(require '[clojure.set])
(clojure.set/intersection #{1 2 3} #{7 8 3})
=> #{3}
或许是时候更新到更新版的Clojure ......
答案 1 :(得分:2)
我不明白为什么clojure.set/intersection
无法使用,但您可以定义自己的(defn intersection [x y]
(into #{} (filter (partial contains? x) y)))
。
一个简单的实现是
(intersection #{1 2 3} #{7 8 3})
;#{3}
给
{{1}}
您可以找到更全面,更快的版本here。