再帰とは、サブルーチンに含まれる命令を繰り返し実行することです。そして、これはサイクルの働きに似ています。 Prolog など、ループ構造がまったくないプログラミング言語もあります。
for ループの動作をシミュレートしてみましょう。
for ループにはステップ カウンター変数が含まれています。再帰サブルーチンでは、このような変数をパラメーターとして渡すことができます。
<プレ>
//2 つのパラメータを持つ LoopImitation() プロシージャ
//最初のパラメーター –ステップ カウンター、2 番目のパラメーター –総ステップ数
手続き LoopImitation(i, n:整数);
始める
writeln('こんにちは N ', i); // i の任意の値に対して繰り返される演算子
もし私が< n then //ループ カウンタが値 n と等しくなるまで、
LoopImitation(i + 1, n); // パラメータ i+1 を使用してプロシージャの新しいインスタンスを呼び出します (次の値 i への遷移)
終わり; プレ>