Соединение наборов clojure на нескольких ключах - PullRequest
0 голосов
/ 23 мая 2018

Есть ли способ объединения наборов clojure для нескольких ключей?Например, у меня есть set1 и set2.Я хочу присоединиться на основе ключей: а и: 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} }

Ответы [ 2 ]

0 голосов
/ 25 мая 2018

Похоже, просто

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}}

сделал то же самое.

0 голосов
/ 23 мая 2018

Один из способов сделать это - использовать clojure.set / join:

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

Он объединяет set1 и set2 на основе карты {:a :a :b :b}, что означает, что он сравнивает значение:a на первой карте до значения :a на второй карте и :b на первой карте до значения :b на второй карте

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...