[plt-scheme] to define, or to let
On Mar 20, Bradd W. Szonye wrote:
> Some of those are comparable; some aren't. PLT's letrec behavior is
> what C/C++ standards gurus call a "quiet change." If you switch to a
> Scheme that doesn't support threads, it's obvious pretty quickly;
> you immediately know that you need to find some kind of replacement
> behavior. Quiet changes are different; you don't realize that
> there's a problem until your program starts acting goofy in ways
> that are difficult to track down.
I don't know (and certainly don't care) about C/C++ standards, their
gurus, and their quiet or noisy changes.
In MzScheme there are lots of extensions to what is specified in R5RS,
and more than that -- R5RS is slim enough that any implementation that
does not add its own extensions is an unrealistic one. Being based
only on things that *everyone* agreed on, I believe that R5RS
*encourages* such changes.
Having said that, I don't see any quitness problem -- open up the
MzScheme manual, and all places that have some extensions are clearly
specified. It's easy -- search the help-desk for `foo', and if it is
found in the R5RS and in the MzScheme manual, then this is probably an
instance of standard behavior in R5RS and an extension discussed in
MzScheme. `letrec' will get you to where the extensions are defined.
Is there anything "less quiet" that is needed? Is there any
implementation that doesn't change things in a well-advertised way?
Is there any implementation that does *exactly* R5RS, nothing more,
nothing less?
And the most important question: Is there any point in continuing this
thread?
--
((lambda (x) (x x)) (lambda (x) (x x))) Eli Barzilay:
http://www.barzilay.org/ Maze is Life!