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