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

[no subject]

It is true that (OPTIONAL) requires a parser for the arg list,
but this is not an important disadvantage.  It is easy to write
that parser (I know; I've written it a few times).  That is not
what I think is wrong with the existing & keyword syntax either.

The problem with &keywords is that they are exceptions.
If a symbol in a certain context is treated in a uniform manner
(such as, by binding it, whatever it is) then it is unclean for
any symbol in that context to mean anything else.  It should be
possible, when parsing code, to tell whether what appears in
a certain context is supposed to be a keyword or not before you see
what the symbol is.  Either the context requires a keyword, in which
case a symbol that isn't meaningful as a keyword of that type is
an error, or the context wants a non-keyword, in which case ANY symbol
is allowed and all symbols are treated the same way.