Next: Multiple Return Values Up: Introduction Previous: MrEdDrScheme, and mzc

# Notation

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