Att organisera kod i funktioner

Clojure:
Att organisera kod i funktioner

Hur man gör:

Clojure-funktioner definieras med defn, följt av ett namn, parametrar och en kropp. Här är ett snabbt exempel.

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

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

Låt oss säga att vi vill beräkna arean på en rektangel. Istället för att klumpa ihop allt separat, delar vi upp det i två funktioner:

(defn area [length width]
  (* length width))

(defn print-area [length width]
  (println "Arean är:" (area length width)))

(print-area 3 4) ; => Arean är: 12

Djupdykning

Förr i tiden skulle kodare bara mosa in all sin logik i en enda block. Det var fult. Sedan kom strukturerad programmering längs, och funktioner blev en grej. I Clojure är varje funktion förstaklassig - du kan slunga dem omkring som vilket annat värde som helst.

Alternativ? Vissa kanske leker med multimetoder eller funktioner av högre ordning, men de är bara kryddor i funktionsgrytan.

Allt i en funktions detaljer: de är oföränderliga i Clojure, vilket gör att sidoeffekter blir mindre sannolika. De lutar sig tungt på rekursion istället för typiska loopar, vilket passar väl med språkets funktionella paradigmer.

Se även