A trampoline makes it possible to recursively call a function without growing the stack.
Popular JavaScript implementations do not perform any tail-call elimination, so recursive functions can cause a stack overflow if they go too deep. Trampolines permit unbounded recursion despite limitations in JavaScript.
This strategy may create many intermediate closures, which is very expensive in JavaScript, so use this library only when it is essential that you recurse deeply.
When you do not want a computation to go through the trampoline.
When you want a computation to be delayed so that it is handled by the trampoline.
Evaluate a trampolined value in constant space.
A computation that has been broken up into a bunch of smaller chunks. The programmer explicitly adds "pause points" so each chunk of computation can be run without making the stack any deeper.