14
Come raggruppare una raccolta di mappe con più chiavi?raggruppamento con più chiavi in Clojure
Ad esempio:
(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)
mi piacerebbe tornare in questo modo:
[{: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}]]
È anche possibile '(gruppo-by (juxt: a: b) Coll)', che vi dà le coppie invece di mappe come i tasti. Spesso questo sarà un formato più utile che avere dozzine di mappe con le chiavi ': a' e': b', ma dipende interamente dalla tua applicazione. – amalloy
@amalloy: giusto. Questo è quello che ho scritto prima di realizzare le richieste specifiche per una mappa. D'accordo sul fatto che i vettori siano probabilmente più utili, avrei dovuto includerlo nella risposta ... Grazie per aver risolto questa omissione clamorosa. :-) –