Clojure-loop-statement
提供:Dev Guides
Clojure-ループステートメント
ループの特別な形式は、 'for' ループとは異なります。 ループの使用法はletバインディングと同じです。 ただし、ループは再帰ポイントを設定します。 再帰ポイントは recur で使用するように設計されています。つまり、ループは常に再帰で使用されます。 ループを発生させるには、再帰に指定された引数の数(アリティ)がループのバインディングの数と一致する必要があります。 そのようにして、再帰はループに戻ります。
構文
ループステートメントの一般的な構文は次のとおりです。
loop [binding]
(condition
(statement)
(recur (binding)))
以下は、このループの図表示です。
例
以下は、「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条件句*を使用して、「x」の値が1より小さいかどうかを確認します。 次に、「x」の値をコンソールに出力し、recurステートメントを使用してループを繰り返します。 「x」の値が2減少した後、ループが繰り返されます。
出力
上記のコードは次の出力を生成します。
10
8
6
4
2