O Que É Trampolining?
Trampolining é um padrão em que uma função, em vez de chamar o próximo passo diretamente, retorna um valor que descreve esse passo, e um loop de nível superior chamado trampoline invoca repetidamente os passos retornados. Como cada passo retorna antes de o próximo executar, a pilha nunca cresce com a profundidade da recursão. Ele simula a tail call optimization em ambientes que não a possuem.
Por que importa
O trampolining permite que código profundamente recursivo ou mutuamente recursivo execute com segurança onde o runtime não otimiza tail calls. O preço é algum overhead e um fluxo de controle menos direto.
Guias relacionados
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…