# for(+初期値_式,-カウンタ,+最終値_式)
for/3は、範囲内で整数を生成します。「初期値_式」も「最終値_式」も共に整数でなければなりません。そうでない場合には、例外が起こります。
「カウンタ」が値を持たない変数の場合には、for(「初期値_式」,「カウンタ」,「最終値_式」)のゴ−ルを満たそうとする度に、「カウンタ」は、「初期値_式」から「最終値_式」の(両方を含む)範囲内の整数になります。for/3は、範囲内の全ての整数が使われるまでは成功します。
「初期値_式」が「最終値_式」より小さければ、整数は昇べきの順に使われます。 (「初期値_式」, 「初期値_式」+1,...)
「初期値_式」が「最終値_式」より大きければ、整数は降べきの順に使われます。 (「初期値_式」, 「初期値_式」-1,...)
「カウンタ」が整数の場合のfor(「初期値_式」,「カウンタ」,「最終値_式」)の呼び出しは、「カウンタ」が「初期値_式」から「最終値_式」の範囲内にある整数であるかどうかをテストする命令になります。
?- for(2,I,3). I = 2; I = 3; no ?- for(3,I,2). I = 3; I = 2; no ?- for(2,2,2). yes
intenger_expected 「初期値_式」あるいは「最終値_式」のいずれかが整数ではない。