[r6rs-discuss] Interpreters need not apply?
On Wed, 7 Mar 2007, William D Clinger wrote:
> I am posting this as an individual member of the Scheme
> community. I am not speaking for the R6RS editors.
>
> AndrevanTonder wrote:
>> Granted, but what does this have to do with being an interpreter or not?
>
> "Pure" is the operative word.
>
> In an earlier message, you had written:
>> No r5rs-conformant Scheme interpreter will start evaluating a form
>> without macro-expanding it first.
I stand corrected.
> You have granted that the R5RS allows my example program
> to print something. If your earlier claim is true, then
> the printing occurs after the program's one form has been
> macro-expanded. Macro-expansion of that particular form
> takes a long time.
Maybe I do not understand what is meant by "pure". I would not disqualify an
interpreter that expands BEGIN forms before evaluating them. Do you claim
that an interpreter does not deserve to be called "pure" if its strategy is to
expand the entire BEGIN form before evaluating it?
In a way, toplevel BEGIN is an anomaly, so let's consider a toplevel LETREC
expression. I claim (and this is now a modified claim) that various r5rs
interpreters will expand such an expression fully before attempting to evaluate
it. I don't consider them less pure because of this strategy. I also consider
the formal concept of an r6rs "toplevel program" to be analogous to an r5rs
letrec, and therefore I am happy to keep calling an interpreter pure if, like a
letrec, it has to read the whole "toplevel program" and expand it in its
entirety before evaluating it. In the context if a REPL, one probably will
want some wrapper like (program ---) to distinguish the sequence of expressions
in a "toplevel program" from the REPL-toplevel, but that is again no different
from r5rs letrec (which already comes wrapped in (letrec ---)).
Andre
Received on Wed Mar 07 2007 - 14:31:27 UTC
This archive was generated by hypermail 2.3.0
: Wed Oct 23 2024 - 09:15:01 UTC