14
Jak pogrupować kolekcję map według wielu kluczy?grupowanie według wielu kluczy w Clojure
Na przykład:
(def m1 [{:a 1 :b 2 :c 3}
{:a 1 :b 2 :c 4}
{:a 1 :b 4 :c 3}
{:a 1 :b 4 :c 3}])
(group-by-x [:a :b] m1)
Chciałbym wrócić w tym:
[{:a 1 :b 2} [{:a 1 :b 2 :c 3}{:a 1 :b 2 :c 4}],
{:a 1 :b 4} [{:a 1 :b 4 :c 3}{:a 1 :b 4 :c 3}]]
Można także '(grupa-by (juxt: a: b) coll)', która daje par zamiast mapach klucze. Często będzie to bardziej przydatny format niż dziesiątki map z kluczami ': a' i': b', ale to zależy wyłącznie od twojej aplikacji. – amalloy
@amalloy: Racja. To było to, co napisałem przed realizacją specyfikacji wzywa do mapy. Uzgodnione wektory są prawdopodobnie bardziej przydatne, powinienem był uwzględnić to w odpowiedzi ... Dzięki za naprawienie tego rażącego pominięcia. :-) –