Fundamentos de defn en Clojure
Define el porcentaje de hidratación de un panadero con docstring y una auxiliar privada.
;; the string after the name is a docstring, stored on the var
(defn hydration
"Water as a percent of flour weight, rounded to a whole number."
[flour-g water-g]
(Math/round (* 100.0 (/ water-g flour-g))))
;; defn- keeps a helper private to this namespace
(defn- describe [pct]
(cond
(< pct 65) "stiff"
(< pct 80) "standard"
:else "slack"))
(def dough (hydration 500 375))
(println "hydration" dough "-" (describe dough))
(println (:doc (meta #'hydration)))
Cómo funciona
hydrationtoma[flour-g water-g]después de su docstring y redondea el porcentaje.defn-hace adescribeprivada al espacio de nombres, dondecondnombra tres rangos.(:doc (meta #'hydration))lee el docstring de vuelta desde el var al final.
Palabras clave y builtins usados aquí
defdefnmetaprintln
El intento, en números
- Líneas
- 16
- Caracteres a escribir
- 459
- Tokens
- 77
- Ritmo de tres estrellas
- 80 tpm
Al ritmo de tres estrellas de 80 tokens por minuto, este intento toma unos 58 segundos.
Paso 1 de 3 en Funciones; paso 7 de 27 en Fundamentos del lenguaje.