27
末尾再帰とは何ですか?
Lispの学習を始めている間に、末尾再帰という用語に出くわしました。正確にはどういう意味ですか?
末尾再帰は、関数がある程度の作業を行ってから、それ自体を呼び出す再帰的な戦略です。「テール」とは、再帰が関数の最後にあるという事実を指します。多くの(特に関数型)プログラミング言語コンパイラは、これらのタイプの呼び出しを反復に変えることができます。つまり、呼び出しの数に関係なく、サポートされている言語での末尾再帰をスタックオーバーフローを恐れずに使用できます。