Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!bloom-beacon!spt.entity.COM!alms From: alms@spt.entity.COM (andrew lm shalit) Newsgroups: comp.lang.scheme Subject: where define is legal Message-ID: <8904201554.AA13117@spt.entity.com> Date: 20 Apr 89 19:54:43 GMT Sender: daemon@bloom-beacon.MIT.EDU Organization: The Internet Lines: 17 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. Some people from non-scheme backgrounds might think programmatic DEFINEs perfectly reasonable, so it's probably worth mentioning the restriction in the language description.