Clojure:
Organizzazione del codice in funzioni

Come fare:

Le funzioni in Clojure sono definite con defn, seguito da un nome, parametri e corpo. Ecco un esempio veloce.

(defn saluta [nome]
  (str "Ciao, " nome "!"))

(saluta "Alex") ; => "Ciao, Alex!"

Ora, diciamo che vogliamo calcolare l’area di un rettangolo. Invece di accatastare tutto insieme, lo separiamo in due funzioni:

(defn area [lunghezza larghezza]
  (* lunghezza larghezza))

(defn stampa-area [lunghezza larghezza]
  (println "L'area è:" (area lunghezza larghezza)))

(stampa-area 3 4) ; => L'area è: 12

Analisi Approfondita

Tempo fa, i programmatori tendevano a concentrare tutta la loro logica in un unico blocco. Era brutto. Poi è arrivata la programmazione strutturata, e le funzioni sono diventate importanti. In Clojure, ogni funzione è di prima classe—puoi manipolarle come qualsiasi altro valore.

Alternative? Alcuni potrebbero smanettare con metodi multipli o funzioni di ordine superiore, ma quelli sono solo spezie nel brodo delle funzioni.

Tutti i dettagli di una funzione: sono immutabili in Clojure, rendendo meno probabile il disordine causato da effetti collaterali. Si basano molto sulla ricorsione invece dei cicli tipici, il che si integra bene con i paradigmi funzionali del linguaggio.

Vedi Anche