[plt-scheme] keywords (a backward-incompatible change)

From: Eli Barzilay (eli at barzilay.org)
Date: Sun Oct 2 21:19:40 EDT 2005

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!

Posted on the users mailing list.