公開日: 04/01/2021

Recurse(再帰)

Recurse()関数は、定義した関数を再帰的に呼び出します。たとえば、Recurse関数を使うと、階乗を計算する関数が作れます。階乗とは、ある数から、その数が1になるまで1ずつ引いていったときのすべての数の積を指します。

myfactorial = Function( {a},
	If( a == 1,
		1,
		a * Recurse( a - 1 )
	)
);
myfactorial( 5 );

120

Recurse()を使わなくても、再帰的計算を定義することはできます。たとえば、Recurse()myfactorialに置き換えても、このスクリプトは機能します。ただし、Recurse()には次のような利点があります。

関数と同じ名前を持ったローカル変数がある場合の競合を回避できます。

関数自体に名前が付けられていない場合でも(たとえば、前述のmyfactorialなど、グローバル変数に割り当てられている場合)、再帰的計算ができます。

より詳細な情報が必要な場合や、質問があるときは、JMPユーザーコミュニティで答えを見つけましょう (community.jmp.com).