[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Scheme-reports] ANN: first draft of R7RS small language available

Eli Barzilay wrote:
>> The ability to rename keyword on export is one stated benefit, but I'm
>> not sure this was/will ever be used.
> It has been used.

Interesting. Any pointers to what kind of uses those where?

> Another related reason is the ability to avoid having a binding for
> `else', without re-binding it just for that purpose.  (See Andre's
> original post for several more.)

Andre mentions pedagogical uses like excluding "=>" to make a
simplified language, and renaming "else" into other (human) languages.
Are those actual examples of what teachers do in practice?

>> Moreover many implementations have keyword and optional arguments,
>> and I never heard anyone complaining that you can't rename them.
> If these keywords were implemented as identifiers (and traditionally
> they're not), then it would make sense to do it there too.

It would make sense if it would be for free, but you'd need to keep
an eye on conflicting identifiers exported from different modules
(which is a major con of bound auxiliary identifiers).

BTW, how does Racket deal with such conflicts? Is this a problem
in practice?

>> There are also historical reasons, i.e. it worked fine in R5RS where no
>> modules existed (provided you don't shadow "else" locally).
> Right -- and that fact (the fact that `else' can be shadowed by a
> local binding) is a fundamental motivation.

I thought it was more of a bug than a feature; where can local
shadowing of "else" or "=>" be useful?

Scheme-reports mailing list