Clojure - Declaración de bucle

La forma especial de bucle no es como un ‘for’lazo. El uso de loop es el mismo que el enlace let. Sin embargo, el bucle establece un punto de recursividad. El punto de recursividad está diseñado para usarse conrecur, lo que significa que el bucle siempre se usa con recur. Para que suceda un bucle, el número de argumentos (aridad) especificados para las repeticiones debe coincidir con el número de enlaces del bucle. De esa manera, recurre vuelve al ciclo.

Sintaxis

A continuación se muestra la sintaxis general de la declaración de bucle.

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

A continuación se muestra la representación esquemática de este bucle.

Ejemplo

A continuación se muestra un ejemplo de ‘for-in’ declaración.

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

En el ejemplo anterior, primero vinculamos el valor de 'x' a 10 usando la instrucción de bucle. Luego usamos elwhen condition clausepara ver si el valor de 'x' es menor que 1. Luego imprimimos el valor de 'x' en la consola y usamos la instrucción recur para repetir el ciclo. El ciclo se repite después de que el valor de 'x' se reduce en 2.

Salida

El código anterior produce la siguiente salida.

10
8
6
4
2