Clojure - Déclaration de boucle

La forme spéciale de la boucle n'est pas comme un ‘for’boucle. L'utilisation de la boucle est la même que celle de la liaison let. Cependant, la boucle définit un point de récursivité. Le point de récursivité est conçu pour être utilisé avecrecur, ce qui signifie que la boucle est toujours utilisée avec recur. Pour qu'une boucle se produise, le nombre d'arguments (arité) spécifié pour les récurrences doit coïncider avec le nombre de liaisons pour la boucle. De cette façon, recur revient à la boucle.

Syntaxe

Voici la syntaxe générale de l'instruction de boucle.

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

Voici la représentation schématique de cette boucle.

Exemple

Voici un exemple de ‘for-in’ déclaration.

(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)

Dans l'exemple ci-dessus, nous lions d'abord la valeur de «x» à 10 à l'aide de l'instruction loop. Nous utilisons ensuite lewhen condition clausepour voir si la valeur de 'x' est inférieure à 1. Nous imprimons ensuite la valeur de 'x' sur la console et utilisons l'instruction recur pour répéter la boucle. La boucle est répétée après que la valeur de «x» est décrémentée de 2.

Production

Le code ci-dessus produit la sortie suivante.

10
8
6
4
2