类似于这个问题:Inner-join in clojure
是否有对任何 Clojure 库中的地图集合执行外连接(左、右和完整)的功能?
我想这可以通过修改代码来完成,clojure.set/join
但这似乎是一个足够普遍的要求,所以值得检查它是否已经存在。
像这样的东西:
(def s1 #{{:a 1, :b 2, :c 3}
{:a 2, :b 2}})
(def s2 #{{:a 2, :b 3, :c 5}
{:a 3, :b 8}})
;=> (full-join s1 s2 {:a :a})
;
; #{{:a 1, :b 2, :c 3}
; {:a 2, :b 3, :c 5}
; {:a 3, :b 8}}
nil
以及左右外连接的相应功能,即包括左、右或两侧的连接键没有值(或值)的条目。