Path: utzoo!attcan!utgpu!jarvis.csri.toronto.edu!mailrus!uwm.edu!gem.mps.ohio-state.edu!apple!cambridge.apple.com!alms From: alms@cambridge.apple.com (Andrew L. M. Shalit) Newsgroups: comp.lang.scheme Subject: Re: Why no eval? Message-ID: Date: 20 Sep 89 14:47:07 GMT References: Sender: news@cambridge.apple.com Organization: Apple Computer Inc, Cambridge, MA Lines: 17 In-reply-to: bobg+@andrew.cmu.edu's message of 19 Sep 89 18:33:01 GMT In article bobg+@andrew.cmu.edu (Robert Steven Glickstein) writes: Why does R^3RS omit a specification for an EVAL procedure? It would seem to have been omitted intentionally. What's the reasoning behind this? Is there a trivial way to write an EVAL procedure? EVAL requires access to environments, which Scheme doesn't currently provide. Making environments first class (or even second-class but accessible) is a very sticky problem, subject of much discussion bordering on flamage. First class environments make analysis and compilation harder, and they make it harder (impossible?) to understand what a program could potentially do. What uses for EVAL did you have in mind? There are probably other ways to do what you want (unless you want to write a debugger). Also, most implementations of Scheme do, in practice, support an EVAL of sorts (for use in their read-eval-print loop, at least).