Clojure:
Organizando código en funciones

Cómo hacerlo:

Las funciones en Clojure se definen con defn, seguido por un nombre, parámetros y cuerpo. Aquí hay un ejemplo rápido.

(defn greet [name]
  (str "Hola, " name "!"))

(greet "Alex") ; => "Hola, Alex!"

Ahora supongamos que queremos calcular el área de un rectángulo. En vez de mezclarlo todo junto, lo separamos en dos funciones:

(defn area [largo ancho]
  (* largo ancho))

(defn print-area [largo ancho]
  (println "El área es:" (area largo ancho)))

(print-area 3 4) ; => El área es: 12

Profundización

Hace tiempo, los programadores simplemente amontonaban toda su lógica en un solo bloque. Era feo. Luego llegó la programación estructurada, y las funciones se convirtieron en algo importante. En Clojure, cada función es de primera clase—puedes manejarlas como cualquier otro valor.

¿Alternativas? Algunas personas podrían jugar con métodos múltiples o funciones de orden superior, pero esos son solo condimentos en el guiso de funciones.

Todos los detalles en las funciones: son inmutables en Clojure, lo que hace menos probable los enredos de efectos secundarios. Apoyan mucho en la recursión en lugar de bucles típicos, lo cual se alinea bien con los paradigmas funcionales del lenguaje.

Ver También