Organisering av kode i funksjoner

Clojure:
Organisering av kode i funksjoner

Hvordan:

Funksjoner i Clojure defineres med defn, etterfulgt av et navn, parametere og kropp. Her er et kjapt eksempel.

(defn hilsen [navn]
  (str "Hei, " navn "!"))

(hilsen "Alex") ; => "Hei, Alex!"

La oss si at vi ønsker å beregne arealet av et rektangel. I stedet for å rotte det hele sammen, deler vi det inn i to funksjoner:

(defn areal [lengde bredde]
  (* lengde bredde))

(defn skriv-areal [lengde bredde]
  (println "Arealet er:" (areal lengde bredde)))

(skriv-areal 3 4) ; => Arealet er: 12

Dypdykk

I gamle dager ville kodere bare hamre all sin logikk inn i en enkelt blokk. Det var ikke pent. Så kom strukturert programmering, og funksjoner ble en ting. I Clojure er hver funksjon førsteklasses—du kan slynge dem rundt som hvilken som helst annen verdi.

Alternativer? Noen folk kan eksperimentere med multimetoder eller høyereordens funksjoner, men de er bare krydder i funksjonsgryta.

Detaljer i en funksjon: de er uforanderlige i Clojure, noe som gjør at bivirkningsrot blir mindre sannsynlig. De støtter seg tungt på rekursjon i stedet for typiske løkker, noe som passer godt sammen med språkets funksjonelle paradigmer.

Se også