for節は別にして、ループが作用する仕方を制御するいくつか他の
ループ節がある。それらはそれら自身だけで使われてもよいし、
1つまたはそれ以上のfor節と結合してもよい。
repeat integerこの節は内部の一時変数を使って単純に指定された数まで数える。 このループは、
(loop repeat n do ...) (loop for temp to n do ...)
2番目は実際には使わない変数のための名前を選ぶように強いることを除いて 同一である。
while conditionこの節は、指定した条件(任意のLisp式)がnilになったらループを
止める。たとえば、下記の2つのループは同等だが、2つ目のループを囲む
暗黙のnilブロックは異なる。
(while cond forms…) (loop while cond do forms…)
until conditionこの節は指定された条件が真、すなわち非nilのときにループを止める。
always conditionこの節は指定された条件がnilのときにループを止める。while
とは違い、return nilを使ってループを止めるのでfinally
節は実行されない。すべての条件が非nilの場合、ループはtを
戻す:
(if (loop for size in size-list always (> size 10))
(some-big-sizes)
(no-big-sizes))
never conditionこの節はalwaysと似ているが、ループはすべての条件が偽なら
tを戻し、そうでなければnilを戻す点が異なる。
thereis conditionこの節は指定されたフォームが非nilのときにループを止める; この
場合、非nilの値を戻す。すべての値がnilの場合、ループは
nilを戻す。