quasiquote returns template unevaluated,
if it doesn't contain any of the special forms
unquote or
unquote-splicing.
If a comma (called an unquote expression) appears within
template, the expression
following it is evaluated and the result is inserted into
the template instead of the unquote expression.
If an at-sign immediately follows the comma
(called an unquote-splicing expression)
the expression must evaluate to a list and its elements are
inserted into the template instead of the
unquote-splicing expression.
quasiquote forms can be nested. Substitutions are
made only for unquoted expressions at the same nesting level
of the outermost quasiquote. The nesting level
increases in each quasiquote and decreases in each
unquotation.
In contrast to quote, the structure
returned is always newly allocated.
quasiquote may be abbreviated with a back apostrophe
`. The Graffiti stroke for this is
"dot, stroke north-west and back". |