Skip to main content

尾の再帰とは何ですか?

tail Tail Recursionは、メソッドがそれ自体を呼び出すプログラミングメソッド呼び出しの一種で、その2回目の呼び出しの値をすぐに返します。言い換えれば、メソッド内の最終ステートメントが同じメソッドの別の呼び出しである場合、テール再帰が発生します。2番目のメソッド呼び出しのパラメーターは、一般に最初のパラメーターとは異なりますが、これは必須ではありません。この再帰が機能するためには、それ自体内で呼び出される方法は、数字、文字列、または他のオブジェクトなどの具体的な値を返す必要があります。値を返さない無効なメソッドは、再帰のためにうまく機能しません。calling呼び出しがその呼び出し方法の最後のステートメントでなければならないという要件は、必ずしも再帰コールがメソッドの最後の行であることを意味するわけではありません。適切なテール再帰コールは、制御構造内にも見つけることができます。つまり、ソースコードでは、コントロール構造が通話ではなくメソッドを終了する可能性があります。この場合の重要な違いは、制御構造がプログラミングステートメントではなく、コンピューター言語の組み込みの一部であることです。多くの場合、これらの再帰呼び出しは、ループ、ループ、またはgotoステートメントなど、他の手段を使用して書き直すことができます。再帰の有用性は、同じ方法に多くの連続した呼び出しを作成するときに見つかります。再帰は、多くの場合、反復タスクを達成するための最もクリーンで最も簡単な方法です。このプロセスは、任意の数から始めて、それが掛ける前にすべての数値を開始するため、理想的です。したがって、5の要因を見つけるために、それを行うための適切なプロセスは、5*4*3*2*1を掛けることです。再帰は、要因方法がどのように構造化されているかのために来ます。要因が1の場合、1つのreturn 1、それ以外の場合は、メソッドに与えられた数の因子を1つから1つから返します。この方法は、最終的なメソッド呼び出しに関する制御ステートメントの有無にかかわらず、いずれかのタイプのテール再帰を使用して同等に記述できるため、有用です。あらゆる種類の再帰の概念は、本質的に同じであり、ある方法でメソッドがそれ自体を呼び出すということです。これらのタイプのうち、尾の再帰の区別は、再帰コールの値がすぐに返され、その呼び出し後の呼び出し方法で他に何も起こらないことです。