Recurse()関数は、定義した関数を再帰的に呼び出します。たとえば、Recurse関数を使うと、階乗を計算する関数が作れます。階乗とは、ある数から、その数が1になるまで1ずつ引いていったときのすべての数の積を指します。
myfactorial = Function( {a},
If( a == 1,
1,
a * Recurse( a - 1 )
)
);
myfactorial( 5 );
120
Recurse()を使わなくても、再帰的計算を定義することはできます。たとえば、Recurse()をmyfactorialに置き換えても、このスクリプトは機能します。ただし、Recurse()には次のような利点があります。
• 関数と同じ名前を持ったローカル変数がある場合の競合を回避できます。
• 関数自体に名前が付けられていない場合でも(たとえば、前述のmyfactorialなど、グローバル変数に割り当てられている場合)、再帰的計算ができます。