Loop 声明
优质
小牛编辑
132浏览
2023-12-01
循环特殊形式不像'for'循环。 循环的用法与let绑定相同。 但是,循环设置递归点。 递归点旨在与recur一起使用,这意味着循环始终与recur一起使用。 要发生循环,为recurs指定的参数(arity)的数量必须与循环的绑定数一致。 这样,recur就会回到循环中。
语法 (Syntax)
以下是循环语句的一般语法。
loop [binding]
(condition
(statement)
(recur (binding)))
以下是此循环的图解表示。
例子 (Example)
以下是'for-in'语句的示例。
(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)
在上面的例子中,我们首先使用loop语句将'x'的值绑定到10。 然后我们使用when condition clause来查看'x'的值是否小于1.然后我们将'x'的值打印到控制台并使用recur语句重复循环。 在'x'的值减2后重复循环。
输出 (Output)
上面的代码产生以下输出。
10
8
6
4
2