Combinação e mesclagem de maps em Clojure
Clojure fornece funções para unir múltiplos mapas e resolver conflitos de chaves.
merge
Combina vários mapas em um único.
Se houver chaves duplicadas, o valor do mapa posicionado mais à direita prevalece.
(def scores {"Angela" 1024})
(def new-scores {"Angela" 300 "Jeff" 900})
(merge scores new-scores)
;; => {"Angela" 300, "Jeff" 900}merge-with
Permite fornecer uma função para tratar conflitos. Se a chave existe em dois mapas com valores e , o novo valor será .
;; Soma os valores em caso de chaves repetidas
(merge-with + scores {"Angela" 100})
;; => {"Angela" 1124}zipmap
Cria um mapa correlacionando duas sequências, uma de chaves e outra de valores.
(zipmap [:a :b :c] [1 2 3])
;; => {:a 1, :b 2, :c 3}