[plt-scheme] to define, or to let

From: Bradd W. Szonye (bradd+plt at szonye.com)
Date: Sat Mar 20 23:44:00 EST 2004

Robby Findler wrote:
> IMO, the standard has let us down on this one. According to it, PLT
> Scheme is an R5RS Scheme. Again, my opinion, but the fact that the
> standard blesses such "quiet change"s is the true problem.

It hardly "blesses" them. It doesn't require a diagnostic, probably
because detection of the error is undecidable, but that's not at all the
same thing as "blessing" the behavior.

Also, the last comp.lang.scheme discussion of this pointed out another
problem with PLT Scheme's letrec implementation. IIRC, Anton van
Straaten found the problem, and Oleg wrote a test case for it. R5RS
requires the interpreter to evaluate all the right-hand sides, then
assign them all to the left-hand variables. You can detect conformance
to that requirement by capturing a continuation inside one of the
right-hand sides, and PLT allegedly fails.

By the way, with a naive implementation of that requirement (i.e., the
interpreter binds the right-hand sides to temporaries, then assigns all
the temporaries to the variables), it's very easy to diagnose dependency
errors.
-- 
Bradd W. Szonye
http://www.szonye.com/bradd


Posted on the users mailing list.