[plt-scheme] keywords (a backward-incompatible change)
On Oct 2, Alex Shinn wrote:
> At Sun, 2 Oct 2005 00:51:46 -0400, Eli Barzilay wrote:
> >
> > On Oct 1, Alex Shinn wrote:
> > > At Sat, 1 Oct 2005 09:53:04 -0400, Eli Barzilay wrote:
> > > >
> > > > And in these discussions, prefix is said to have the advantage of
> > > > being visually similar to a quote.
> > >
> > > I would consider this a disadvantage, because the prefix quote has
> > > nothing to do with quote - it's a new literal value. It has very
> > > different semantics from quoting.
> >
> > It is similar in being self-quoting. But like I said -- this is a
> > common point, go on cls (and cll) and try it out.
>
> I've searched and can find no discussions (on either newsgroup or on
> the web) of this issue. I can find many general keyword debates,
> and sometimes the "think of colon as a quote" argument turns up, but
> this is in defense of keywords in general, not as opposed to
> suffixing.
(They definitely happened on cls/cls.)
> The generally used term for what keywords do is "self-evaluating," not
> "self-quoting." [...]
Yes, I meant self-evaluating -- its the "colon as a quote" argument
that I was talking about.
> Terminology and all other arguments aside, to suggest a prefix colon
> is similar to quote is to invite confusion. Keywords evalute to
> themselves, like numbers and string literals.
The similarity is whether you know what you have as soon as you see a
colon or whether you need to backtrack your mental reading. Same
principle as for a parser (except that the difference there is
minimal). (BTW, I think that I already said that one thing with
suffixes is that they make things confusing when you're using keywords
for something other than `keyword: value' pairs.)
> > > but at least it wouldn't affect any user code [...]
> >
> > Huh? I think that the damage to current code is roughly the same.
>
> This is taken out of context -
The "it" wasn't very clear.
> it's in reference to the specific issue of prefix importing. [...]
When we talk about "user code", then you're going to destroy either
code that uses prefix colons or code that uses suffix colons. In
either case there is a noticeable effect on user code.
--
((lambda (x) (x x)) (lambda (x) (x x))) Eli Barzilay:
http://www.barzilay.org/ Maze is Life!