Los mapas se usan comúnmente para dos propósitos: administrar una asociación de claves a valores y representar datos de aplicaciones de dominio. El primer caso de uso suele denominarse diccionarios o mapas hash en otros lenguajes.
Los mapas se representan como claves y valores alternados rodeados por {y}.
(def scores {"Fred" 1400
"Bob" 1240
"Angela" 1024})
Cuando Clojure imprime un mapa en el REPL, pondrá comas entre cada par clave / valor. Estos se utilizan exclusivamente para facilitar la lectura: las comas se tratan como espacios en blanco en Clojure.
;; same as the last one!
(def scores {"Fred" 1400, "Bob" 1240, "Angela" 1024})
Se agregan nuevos valores a los mapas con la función assoc (abreviatura de "asociar"):
user=> (assoc scores "Sally" 0)
{"Angela" 1024, "Bob" 1240, "Fred" 1400, "Sally" 0}
Si la clave utilizada en assoc ya existe, el valor se reemplaza.
user=> (assoc scores "Bob" 0)
{"Angela" 1024, "Bob" 0, "Fred" 1400}
La operación complementaria para eliminar pares clave-valor es dissoc ("disociar"):
user=> (dissoc scores "Bob")
{"Angela" 1024, "Fred" 1400}