# 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).