University of Washington • CSE583 • D. Notkin © 2000
8
Scheme syntax
lProgram     ::= ( Definition | Expr )
lDefinition  ::=
  (define id Expr)
| (define (idfn idformal1 … idformalN) Expr) lExpr        ::= id | Literal | SpecialForm
            | (Exprfn Exprarg1 … ExprargN)
lLiteral     ::= int | string | symbol | …
lSpecialForm ::= (if Exprtest Exprthen Exprelse) | ...