Skip to content
Latchkey

トランポリンとは何か?

トランポリンは、関数が次のステップを直接呼び出す代わりに、そのステップを記述する値を返し、トランポリンと呼ばれるトップレベルのループが、返されたステップを繰り返し呼び出すパターンです。各ステップは次が実行される前に返るため、スタックは再帰の深さとともに増えることがありません。これは、tail call optimizationを持たない環境でそれを模倣します。

なぜ重要か

トランポリンは、ランタイムが末尾呼び出しを最適化しない場所でも、深く再帰する、または相互に再帰するコードを安全に実行できるようにします。代償はいくらかのオーバーヘッドと、より間接的な制御フローです。

関連ガイド