typestar

Keywords y símbolos en Clojure

Lee la pista de un mixtape desde un mapa con keywords y la contrasta con un símbolo citado.

;; keywords evaluate to themselves, which makes them good map keys
(def track {:title "Sea Change" :artist "Wren" :minutes 4})

;; a keyword called as a function looks itself up in a map
(println (:artist track) "-" (:title track))

;; a second argument is the fallback when the key is missing
(println "bpm:" (:bpm track 120))

;; a namespaced keyword keeps keys from colliding across sources
(def tagged (assoc track :mixtape/side :a))
(println (:mixtape/side tagged))

;; a symbol names something else; quoting one stops the lookup
(def side 'flip)
(println (type :a) (type side))

Cómo funciona

  1. (:artist track) llama a un keyword como función para que se busque a sí mismo en el mapa.
  2. (:bpm track 120) aporta el fallback para una clave que el mapa no trae.
  3. :mixtape/side es una clave con espacio de nombres, y (def side 'flip) vincula un símbolo que type distingue.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
16
Caracteres a escribir
583
Tokens
71
Ritmo de tres estrellas
75 tpm

Al ritmo de tres estrellas de 75 tokens por minuto, este intento toma unos 57 segundos.

Escribe este fragmento

Paso 3 de 3 en Valores y vinculaciones; paso 3 de 27 en Fundamentos del lenguaje.

← Anterior Siguiente →