[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: where define is legal
In article <8904201554.AA13117@spt.entity.com> alms@spt.entity.COM (andrew lm shalit) writes:
Offhand, the following definition seems bogus:
(define (foo bool)
(if bool
(define (result) #true)
(define (result) #false))
(result))
And indeed, when I try to run this in MacScheme, I get an error message.
I agree with the semantics, but I couldn't find anything in the R3
description of DEFINE which restricts where it may appear.
See section 5.2. Definitions:
"Definitions are valid in some, but not all, contexts where
expressions are. The are vlid only at the top level of a <program>
and, in some implementations, at the beginning of a <body>. [that is,
the body of a lambda, let, let*, letrec or define expression (from 5.2.2)]"
pertti
--
Pertti Kellom\"aki (TeX format) # pk@tut.fi # Wasting time is
Tampere Univ. of Technology # # an important part
Software Systems Lab # # of living