top
up

4.1NotationπŸ”— i

This chapter (and the rest of the documentation) uses a slightly different notation than the character-based grammars of the Racket Essentials chapter. The grammar for a use of a syntactic form something is shown like this:

(something[id...+]an-expr...)

The italicized meta-variables in this specification, such as id and an-expr, use the syntax of Racket identifiers, so an-expr is one meta-variable. A naming convention implicitly defines the meaning of many meta-variables:

  • A meta-variable that ends in id stands for an identifier, such as x or my-favorite-martian.

  • A meta-identifier that ends in keyword stands for a keyword, such as #:tag.

  • A meta-identifier that ends with expr stands for any sub-form, and it will be parsed as an expression.

  • A meta-identifier that ends with body stands for any sub-form; it will be parsed as either a local definition or an expression. The last body must be an expression; see also Internal Definitions.

Square brackets in the grammar indicate a parenthesized sequence of forms, where square brackets are normally used (by convention). That is, square brackets do not mean optional parts of the syntactic form.

A ... indicates zero or more repetitions of the preceding form, and ...+ indicates one or more repetitions of the preceding datum. Otherwise, non-italicized identifiers stand for themselves.

Based on the above grammar, then, here are a few conforming uses of something:

(something[x])
(something[x](+ 12))
(something[xmy-favorite-martianx](+ 12)#f)

Some syntactic-form specifications refer to meta-variables that are not implicitly defined and not previously defined. Such meta-variables are defined after the main form, using a BNF-like format for alternatives:

(something-else[thing...+]an-expr...)
thing = thing-id
| thing-keyword

The above example says that, within a something-else form, a thing is either an identifier or a keyword.

top
up

AltStyle γ«γ‚ˆγ£γ¦ε€‰ζ›γ•γ‚ŒγŸγƒšγƒΌγ‚Έ (->γ‚ͺγƒͺγ‚ΈγƒŠγƒ«) /