テールコールとは何か?
テールコールは関数のまさに最後の操作として発生する呼び出しであり、それがリターンした後には、その結果を返すこと以外に行うべきことが残っていません。呼び出し元のフレームはもはや不要なため、実装は新しいフレームをプッシュする代わりに、それを呼び出し先のために再利用できます。これがtail call optimizationを可能にする性質です。
なぜ重要か
テールコールを認識することで、コンパイラはスタックをあふれさせる再帰をループのような反復へと変えられます。これは関数型のスタイルで深い再帰アルゴリズムを安全に書くための基礎です。
関連ガイド
What Is Tail Call Optimization?Tail call optimization reuses the current stack frame for a call in tail position, so deeply recursive tail c…
What Is a Stack Frame?A stack frame is the block of stack memory for one function call, holding its arguments, local variables, and…
What Is a Continuation?A continuation represents the rest of a computation at a given point, as a value that can be invoked later to…