A continuation represents “the rest of the computation”: at any point during a program’s execution, the continuation is whatever remains to be done with the current value. Reifying this idea as a function is a powerful way to reason about and manipulate control flow, rather than treating it as an implicit property of the call stack.
Continuation-passing style (CPS) is a programming discipline in which this is made explicit. Instead of returning a value, every function takes an extra argument, the continuation, and calls it with the result. Control flow then becomes ordinary function application, which is why CPS is widely used inside compilers and interpreters and underpins constructs like generators and async code.
Scheme makes continuations available to the programmer directly. The R7RS standard defines call-with-current-continuation (commonly abbreviated call/cc), which captures the current continuation and passes it to a procedure as a first-class value. Because that captured continuation can be stored and invoked later, a single mechanism can express early exits, loops, coroutines, generators, and backtracking.
SICP, written in Scheme, develops the underlying model of evaluation and control on which continuations rest. First-class continuations remain one of the most distinctive features of the Scheme family, demonstrating how giving programs explicit access to their own control flow generalizes many seemingly separate control structures into one idea.