Throughout this manual, the syntax for new forms is described using a
pattern notation with ellipses. Plain, centered ellipses ( )
indicate zero or more repetitions of the preceding S-expression
pattern. Ellipses with a ``1'' subscript (
) indicate one
or more repetitions of the preceding S-expression pattern.
For example:
(let-values (((variable
) expr)
)
body-expr
)
The first set of ellipses indicate that any number of variables
(or none) can be provided with a single expr. The second set of
ellipses indicate that any number of ((variable ) expr) combinations (or none) can appear in the parentheses
following the let-values syntax name. The last set of ellipses
indicate that a let-values expression can contain any number of
body-expr expressions, as long as at least one expression is
provided. In describing parts of the let-values syntax, the
name variable is used to refer to a single binding variable in
a let-values expression.
Some examples contain simple ellipses (...); these ellipses indicate that an unimportant part of the example expression has been omitted.
Square brackets (``['' and ``]'') are normally treated as parentheses
by MzScheme, and this manual uses square brackets as parentheses in
example code. However, in describing a MzScheme procedure, this
manual uses square brackets to denote optional arguments. For
example,
(raise-syntax-error name-symbol message-string [expr sub-expr])
describes the calling convention for a procedure
raise-syntax-error where the name-symbol and
message-string arguments are required, and the expr and
sub-expr arguments are optional (but expr must be
provided if sub-expr is provided).