chickadee » chicken » continuation

Module (chicken continuation)

This module provides a more powerful interface for continuations than that provided by call/cc.

More information about this continuation API can be found in the paper A Better API for First-Class Continuations by Marc Feeley.

Continuations API

continuation-capture

continuation-capture PROCEDUREprocedure

Creates a continuation object representing the current continuation and tail-calls PROCEDURE with this continuation as the single argument.

continuation?

continuation? Xprocedure

Returns #t if X is a continuation object, or #f otherwise. Please note that this applies only to continuations created by the Continuation API, but not by call/cc, i.e.: (call-with-current-continuation continuation?) returns #f, whereas (continuation-capture continuation?) returns #t.

continuation-graft

continuation-graft CONT THUNKprocedure

Calls the procedure THUNK with no arguments and the implicit continuation CONT.

continuation-return

continuation-return CONT VALUE ...procedure

Returns the value(s) to the continuation CONT. continuation-return could be implemented like this:

(define (continuation-return k . vals)
  (continuation-graft
    k
    (lambda () (apply values vals))))

Previous: Module (chicken condition)

Next: Module (chicken csi)

Contents »