循环的特殊形式不同于" for" 循环。循环的用法与let绑定相同,为了使循环发生,为循环指定的参数(arity)数必须与循环的绑定数一致。

Loop - 语法

以下是循环语句的一般语法。

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

以下是此循环的示意图。

Loop Statement

Loop - 示例

以下是" for-in" 语句的示例。

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

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

在上面的示例中,我们首先使用loop语句将" x"的值绑定到10。然后,我们使用 when条件子句来查看'x'的值是否小于1。然后将'x'的值打印到控制台,并使用recur语句重复循环。将" x"的值递减2后,重复循环。

上面的代码产生以下输出。

10
8
6
4
2

参考链接

https://www.learnfk.com/clojure/clojure-loop-statement.html