typestar

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

  1. hydration toma [flour-g water-g] después de su docstring y redondea el porcentaje.
  2. defn- hace a describe privada al espacio de nombres, donde cond nombra tres rangos.
  3. (:doc (meta #'hydration)) lee el docstring de vuelta desde el var al final.

Palabras clave y builtins usados aquí

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.

Escribe este fragmento

Paso 1 de 3 en Funciones; paso 7 de 27 en Fundamentos del lenguaje.

← Anterior Siguiente →