Next: Assignments, Previous: Dynamic Binding, Up: Special Forms [Contents][Index]
Definitions are valid in some but not all contexts where expressions
are allowed. Definitions may only occur at the top level of a program
and at the beginning of a lambda body (that is, the body of a
lambda, let, let*, letrec,
letrec*, let-values, let*-values,
parameterize, or “procedure define” expression). A
definition that occurs at the top level of a program is called a
top-level definition, and a definition that occurs at the
beginning of a body is called an internal definition.
In the second form of define (called “procedure
define”), the component formals is identical to the
component of the same name in a named-lambda expression. In
fact, these two expressions are equivalent:
(define (name1 name2 …) expression expression …)
(define name1
(named-lambda (name1 name2 …)
expression
expression …))