def y nombres en Clojure
Nombra el inventario de un puesto de mercado con def y deriva un valor de los otros.
;; def interns a name in the namespace; names use hyphens, not camelCase
(def stall-name "Ridgeline Orchard")
(def crates-on-hand 12)
(def apples-per-crate 40)
;; a def can be computed from names defined above it
(def apples-on-hand (* crates-on-hand apples-per-crate))
;; a trailing ? marks a name that answers yes or no
(def restock-needed? (< crates-on-hand 15))
;; a trailing ! marks a name tied to something that changes
(def sold-today! (atom 0))
(swap! sold-today! + 96)
(println stall-name "has" apples-on-hand "apples")
(println "restock?" restock-needed? "- sold" @sold-today!)
Cómo funciona
(def stall-name "Ridgeline Orchard")registra un nombre en el espacio de nombres, con guiones y no en camelCase.apples-on-handse calcula como(* crates-on-hand apples-per-crate)a partir de los dos def de arriba.restock-needed?termina en pregunta por un sí o no, ysold-today!en admiración por el átomo que actualizaswap!.
Palabras clave y builtins usados aquí
defprintln
El intento, en números
- Líneas
- 17
- Caracteres a escribir
- 591
- Tokens
- 66
- Ritmo de tres estrellas
- 75 tpm
Al ritmo de tres estrellas de 75 tokens por minuto, este intento toma unos 53 segundos.
Paso 1 de 3 en Valores y vinculaciones; paso 1 de 27 en Fundamentos del lenguaje.