Next: Internal Definitions, Previous: Definitions, Up: Definitions [Contents][Index]
A top-level definition,
(define variable expression)
has essentially the same effect as this assignment expression, if variable is bound:
(set! variable expression)
If variable is not bound, however, define
binds
variable to a new location in the current environment before
performing the assignment (it is an error to perform a set!
on an
unbound variable). If you omit expression, the variable becomes
unassigned; an attempt to reference such a variable is an error.
(define add3 (lambda (x) (+ x 3))) ⇒ unspecified (add3 3) ⇒ 6 (define first car) ⇒ unspecified (first '(1 2)) ⇒ 1 (define bar) ⇒ unspecified bar error→ Unassigned variable