bobg+@andrew.cmu.edu (Robert Steven Glickstein) (09/20/89)
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? _______________________________ Bob Glickstein, System Designer Information Technology Center room 220 Carnegie Mellon University Pittsburgh, PA 15213-3890 (412) 268-6743 Internet: bobg+@andrew.cmu.edu Bitnet: bobg%andrew.cmu.edu@cmuccvma.bitnet UUCP: ...!harvard!andrew.cmu.edu!bobg Vote anarchist
alms@cambridge.apple.com (Andrew L. M. Shalit) (09/20/89)
In article <YZ5cNR600VsnI0cEgG@andrew.cmu.edu> 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).