Clojure - Istruzione Loop

La forma speciale del ciclo non è come un file ‘for’ciclo continuo. L'utilizzo di loop è lo stesso dell'associazione let. Tuttavia, loop imposta un punto di ricorsione. Il punto di ricorsione è progettato per essere utilizzato conrecur, il che significa che loop viene sempre utilizzato con recur. Affinché un ciclo avvenga, il numero di argomenti (arity) specificato per le ricorrenze deve coincidere con il numero di associazioni per il ciclo. In questo modo, la ripetizione torna al ciclo.

Sintassi

Di seguito è riportata la sintassi generale dell'istruzione loop.

loop [binding]
(condition
   (statement)
   (recur (binding)))

Di seguito è riportata la rappresentazione schematica di questo ciclo.

Esempio

Di seguito è riportato un esempio di a ‘for-in’ dichiarazione.

(ns clojure.examples.hello
   (:gen-class))

;; This program displays Hello World
(defn Example []
   (loop [x 10]
      (when (> x 1)
         (println x)
         (recur (- x 2))))) 
(Example)

Nell'esempio precedente, associamo prima il valore di "x" a 10 utilizzando l'istruzione loop. Quindi usiamo il filewhen condition clauseper vedere se il valore di "x" è minore di 1. Stampiamo quindi il valore di "x" sulla console e utilizziamo l'istruzione recur per ripetere il ciclo. Il ciclo viene ripetuto dopo che il valore di "x" viene diminuito di 2.

Produzione

Il codice precedente produce il seguente output.

10
8
6
4
2