I wrote a post about an interesting thing I learned recently about continuation-passing style and the factorial function. It shows how a special representation of continuations leads to the iterative version of the factorial function.
8 Likes
I think I saw this pattern a few times usually implemented like this:
type Trampoline a
= Done a
| Jump (() -> Trampoline a)
evaluate : Trampoline a -> a
evaluate trampoline =
case trampoline of
Done value ->
value
Jump f ->
evaluate (f ())
Example: Trampoline.elm
Actually, trampolining is an orthogonal concern that’s not related to what I was writing about in the article.
However, I remember using trampolining when I was trying to improve the divModBy
function in elm-natural
, which you can find here.
1 Like
This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.