while ¶while という特殊形式は、第1引数を評価して得られた値が真か偽かを判定します。これは Lisp
インタプリタが if で行う処理と同様ですが、その後の処理は異なります。
while 式において、第1引数を評価して得られた値が false の場合、Lisp
インタプリタは式の残りの部分(式の 本体)をスキップし、評価しません。しかし、値が true の場合、Lisp
インタプリタは式の本体を評価し、その後改めて while の第1引数が true か false
かを判定します。第1引数を評価して得られた値が再び true である場合、Lisp インタプリタは再び式の本体を評価します。
while 式のテンプレートは次のようになります。
(while true-or-false-test body...)