[EMAIL PROTECTED] wrote:Bryce Bockman writes:
Don't confuse categories please. SICP doesn't say how to make a lazy
variant of Scheme. Applicative protocol is not normal protocol, the
reduction is, as it is.
We may have a different copy of SICP, but in mine (2nd edition) there is Chapter 4.2 "Variantions on a Scheme -- Lazy Evaluation" and in particular 4.2.2 "An Interpreter with Lazy Evaluation".
Absolutely right, and BTW., I had
http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-27.html#%_sec_4.2
on the screen when I wrote what I wrote. Michael Vanier explained well
my aim (better than myself, an optional sad smiley here...).
I wanted just to say that a lazy interpreter etc., *is not Scheme*. Well,
AS say: "In this section we will implement a normal-order language that is
the same as Scheme except that compound procedures are non-strict in each
argument. Primitive procedures will still be strict." We read, and we see
that the lazy layer is a superficial one, with 'forcing' implemented at
the surface, so for me it was enough to remark that I consider it to be
a different language.
Sorry for the hair-splitting manners, I didn't want to annoy anybody.
--
On the other hand, it would be an interesting pedagogical initiative to
take such language as Scheme, but instead of making a "Scheme variant",
"metacircular" etc. in it, to try to implement a genuine lazy graph
reduction strategy, as in Clean. Or implement a kind of STG Haskell
machine.
Regards.
Jerzy Karczmarczuk
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe