On Friday, October 24, 2003, at 01:12 PM, Bradd W. Szonye wrote:
>> Was this a conscious design choice, or did it just fall out of the
> implementation? I did notice that Scheme-48 modules are slightly
> different; they forbid set! but permit shadowing.
There are many different choices on how you want identifiers to bind
in a scoping construct. I grew up on Algol60, which groups all those
local procedures recursively that are declared without a variable decl
in between and others are in a let* (shadowing) relationship. Others
grew up in different scoping mechanisms. All come with flaws and
advantages.
> (That's not criticism of PLT Scheme -- just noting that another
> implementation made different choices.)
Criticism is perfectly fine. We put up PLT Scheme as if it were a
theorem and we invite careful and critical deconstruction (search
and destroy) so that we can improve it. Just a general remark.
-- Matthias