Manipulação de maps com assoc e dissoc em Clojure


A modificação de um mapa em Clojure ocorre através das funções de associação (assoc) e dissociação (dissoc), que respeitam a imutabilidade.

assoc (associate)

Adiciona um novo par chave-valor ou substitui o valor se a chave já existir.

(def scores {"Angela" 1024})
 
(assoc scores "Sally" 0) 
;; => {"Angela" 1024, "Sally" 0}
 
(assoc scores "Angela" 0) 
;; => {"Angela" 0}

dissoc (dissociate)

Remove um ou mais pares de chave-valor do mapa.

(dissoc scores "Angela") 
;; => {}

Referências


https://clojure.org/guides/learn/hashed_colls#_maps