トランポリンとは何か?
トランポリンは、関数が次のステップを直接呼び出す代わりに、そのステップを記述する値を返し、トランポリンと呼ばれるトップレベルのループが、返されたステップを繰り返し呼び出すパターンです。各ステップは次が実行される前に返るため、スタックは再帰の深さとともに増えることがありません。これは、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 Continuation?A continuation represents the rest of a computation at a given point, as a value that can be invoked later to…
What Is a Thunk?A thunk is a deferred computation wrapped as a value, evaluated only when forced, often used to implement laz…