[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Why no eval?

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).