[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Scheme-reports] ANN: first draft of R7RS small language available
- To: Andy Wingo <wingo@x>
- Subject: Re: [Scheme-reports] ANN: first draft of R7RS small language available
- From: Vitaly Magerya <vmagerya@x>
- Date: Fri, 29 Apr 2011 16:33:16 +0300
- Cc: scheme-reports@x
- In-reply-to: <email@example.com>
- References: <BANLkTi=hSfKrHo13BUMP==SNPCX-+As0HQ@mail.gmail.com> <BANLkTi=kSqWZpF-fAPObreiuAf9FxPb85w@mail.gmail.com> <BANLkTik2QF-u=58SLtQDTTWnx6htQxhqXA@mail.gmail.com> <Pine.SOC.firstname.lastname@example.org> <BANLkTi=7N-mRVJ_ZDyHp7C+XxJZS4hgf4A@mail.gmail.com> <email@example.com> <firstname.lastname@example.org>
Andy Wingo wrote:
> I don't know. Like most of you, I've been programming scheme for a
> while, but the implications of lexical scope on keywords and modules
> have not even crossed my mind until an R6RS user reported a bug in our
> R6RS implementation, to this effect.
Folks, why do we at all match keywords (e.g. "else") lexically instead
The ability to rename keyword on export is one stated benefit, but I'm
not sure this was/will ever be used. Moreover many implementations have
keyword and optional arguments, and I never heard anyone complaining
that you can't rename them.
Simplicity of syntax-rules is another benefit: now we've got one list of
identifiers that are matched lexically, we'd need one extra list for
those matched textually.
There are also historical reasons, i.e. it worked fine in R5RS where no
modules existed (provided you don't shadow "else" locally).
Any other reasons? Are these reasons compelling enough to go through the
trouble of binding & exporting auxiliary keywords in modules, risk local
shadowing, etc? I know WG1 voted on the issue, but I don't remember any
discussion on it.
Scheme-reports mailing list