The
key-expr,
val-expr, and
result-expr
expressions are evaluated in order. After
key-expr is
evaluated to obtain a key and
val-expr is evaluated to
obtain a value, the key is mapped to the value as a
continuation mark in the current
continuation’s initial
continuation frame. If the frame already has a mark for the
key, the mark is replaced. Finally, the
result-expr is evaluated;
the continuation for evaluating
result-expr is the
continuation of the
with-continuation-mark expression (so the
result of the
result-expr is the result of the
with-continuation-mark expression, and
result-expr
is in tail position for the
with-continuation-mark
expression).