Translate

miércoles, 3 de febrero de 2021

Primeros pasos con Clojure, parte 22


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}