Why doesn Common Lisp have continuations?
Continuations are a great theoretical tool; if a language has first-class, multiply-invocable continuations then one can build threads, exceptions, coroutines, and the kitchen sink on top. However, such continuations present a heavy burden for a Lisp implementer and may preclude or at least complicate other desirable optimizations. The ANSI standardizing committee decided that it would be better to specify the user-level control structure (CATCH, UNWIND-PROTECT, and so on) and let implementers choose whether to build those on top of continuations or not. If you need to play with continuations, they are standard in Scheme though make sure you pick a Scheme implementation that actually supports them because they don’t all.
Continuations are a great theoretical tool; if a language has first-class, multiply invocable continuations then one can build threads, exceptions, coroutines, and the kitchen sink on top. However, there is an implementation burden with continuations; supporting first-class, multiply invocable continuations complicates things tremendously for the Lisp implementor. The ANSI standardizing committee J13, mindful of this, took the view that it would be better to specify the user-level control structure (CATCH, UNWIND-PROTECT, and so on) and let implementors choose whether to build those on top of continuations or not. If you need to play with continuations, you should use a Scheme implementation.
Continuations are a great theoretical tool; if a language has first-class, multiply invocable continuations then one can build threads, exceptions, coroutines, and the kitchen sink on top. However, there is an implementation burden with continuations; supporting first-class, multiply invocable continuations complicates things tremendously for the Lisp implementor. The ANSI standardizing committee J13, mindful of this, took the view that it would be better to specify the user-level control structure (CATCH, UNWIND-PROTECT, and so on) and let implementors choose whether to build those on top of continuations or not.