1 General or introductory materials
1.1 Powerful metaphors, images
Here is a collection of short descriptions, analogies or metaphors, that illustrate this difficult concept, or an aspect of it.
1.1.1 Imperative metaphors
- “In computing, a continuation is a representation of the execution state of a program (for example, the call stack) at a certain point in time” (Wikipedia's Continuation).
- “At its heart,
call/ccis something like the
gotoinstruction (or rather, like a label for a
gotoinstruction); but a Grand High Exalted
gotoinstruction... The point about
call/ccis that it is not a static (lexical)
gotoinstruction but a dynamic one“ (David Madore's A page about
1.1.2 Functional metaphors
- “Continuations represent the future of a computation, as a function from an intermediate result to the final result“ (Continuation monad section in Jeff Newbern's All About Monads)
- “The idea behind CPS is to pass around as a function argument what to do next“ (Yet Another Haskell Tutorial written by Hal Daume III, 4.6 Continuation Passing Style, pp 53-56))
- Wikipedia's Continuation is a surprisingly good introductory material on this topic. See also Continuation-passing style.
- Yet Another Haskell Tutorial written by Hal Daume III contains a section on continuation passing style (4.6 Continuation Passing Style, pp 53-56)
- HaWiki has a page on ContinuationPassingStyle, and some related pages linked from there, too.
- David Madore's A page about
call/ccdescribes the concept, and his The Unlambda Programming Language page shows how he implemented this construct in an esoteric functional programming language.