繁体   English   中英

在多个键上加入Clojure集

[英]Join clojure sets on multiple keys

有没有办法在多个键上加入Clojure集? 例如,我有set1和set2。 我想加入基于:a和:b的

(def set1 #{ {:a 1 :b 2 :c 3} {:a 3 :b 4 :c 5} }) (def set2 #{ {:a 1 :b 2 :d 4} {:a 3 :b 4 :d 6} {:a 7 :b 7} {:a 1 :b 2 :c 4}})

所需的输出是

#{{:a 1 :b 2 :c 3 :d 4} {:a 1 :b 2 :c 4} {:a 3 :b 4 :c 5 :d 6} }

一种方法是使用clojure.set / join:

(clojure.set/join set1 set2 {:a :a :b :b})

它基于在地图上加入SET1和SET2 {:a :a :b :b}这意味着它比较的值:a在冷杉映射到的值:a第二地图和的值上:b在冷杉映射到第二个地图上的:b

看起来很简单

cljs.user=> (clojure.set/join set1 set2)
#{{:a 1, :b 2, :c 3, :d 4}
  {:a 3, :b 4, :c 5, :d 6}
  {:a 1, :b 2, :c 4}}

做同样的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM