doc.txt

Tail

_Tail_
_tail_

This collection provides one file:

 _tail.ss_: special form for tail-context continuations

This library provides a syntax for capturing a continuation and binding it to a
variable that, when applied, evaluates its subexpression in tail position with
respect to its parent expression.

======================================================================

> (let-tail-continuation k body1 body2 ...)
> (let/tc k body1 body2 ...)

A syntax for capturing the current continuation and binding it to the variable
k. The variable is in scope for the evaluation of the body expressions. The
difference between _let/tc_ and _let/cc_ is that applications of the
continuation variable occur in tail position.

> (push-begin e1 e2 ...)

A syntax for evaluating a sequence of expressions, like Scheme's
primitive BEGIN, but without preserving tail context. In particular,
the last expression of _push-begin_ is NOT in tail position with
respect to the containing expression.

The value of a _push-begin_ expression, like BEGIN, is the value of
the last expression in the sequence.

The expressions of a _push-begin_ may evaluate to multiple values (or
no values).