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

Re: proposals for R5RS (sorry)

Kent Dybvig writes:

    This is a nice generalization of the (... ...) escape that we proposed
    in "Syntactic Abstraction in Scheme".  Is there some reason why you
    chose ::: rather than ...?  I chose ... in order not to take away one
    more identifer from the pattern variable namespace.  I am happy with
    this change if you are willing to go with ..., unless you can convince
    me that using some other identifier is necessary.

The use of some other identifier is definitely not necessary, and
I am definitely willing to go with ... as the escape character.
I am willing to go with whatever the authors want, but I definitely
want some kind of escape, and the generalization is moderately
important to me.  I don't want to have to decorate each and every
ellipsis whenever I want to make a macro local to some other macro.

Why did I choose :::?  I had forgotten about Kent's use of ... for
essentially the same purpose.  I didn't use ... because I thought it
might be confusing to people, even though it would be syntactically
unambiguous.  I chose ::: because it is a legal identifier, its
appearance may suggest a connection with ..., and it didn't seem
likely that too many people would be using it as a variable, keyword,
or pattern identifier.  Let me remind everyone that ... is not a
reserved word, and ::: would not be a reserved word either if it
were adopted as an escape.  Thus the particular symbol we use as an
escape doesn't matter overmuch.

That said, I think Kent and I both prefer ... as the escape symbol
instead of :::, and no one else has said anything about it, so I'd
like to amend my proposal #1 by replacing ::: with ... .