(rontolisp) docs
← 反復

for

(for [binding...] expr)

束縛の全組合せに対する expr を、左から右へ答えます。ペア、パターン、修飾子は doseq と同様です。各 :when は要素を飛ばし、各 :while はそのレベルを終え、各 :let は逐次に 束縛します。辿るコレクションがすべて strict な間は答えを一度に realize した strict なリスト です。最初の lazy なコレクション(最初の束縛のものも含む)から先は lazy seq になり、消費 されるにつれて realize されます。そのため first と take は答える分だけ realize し、無限の コレクションもその後ろで終わります。

逸脱:空の strict な結果は nil で、オラクルが () と印字する点と異なります。strict な 答えは for の実行時に realize され、オラクルのように消費まで待ちません。