>> heave the syntax-rules implementation overboard as far as I am concerned,
>> and eliminate the need for the parens in favor of a syntactic keyword
>> like &keys. Best of all worlds.
>
> Why is &key better? Would you like it in keyword-call in addition to
> keyword-lambda? I think it's a worse alternative.
To clarify,
This is the most common right now, as per
<https://srfi.schemers.org/srfi-177/srfi-177.html#_scheme_implementations_with_native_keywords>:
(lambda (foo #!key bar) ...)
This is similar to Common Lisp and DSSSL and I think it's fine. The
challenge is to find universally workable token for the `#!key` part.
Some Schemes have :key or #:key.
177 defines a new `keyword-lambda` instead of extending `lambda`, so we
can pick whichever keyword we want. But we should do it with a view to
extending lambda in R7RS-large, so that 177 code can ideally be
converted to standard R7RS-large code simply by replacing
`keyword-lambda` with `lambda`. Since 177 cannot mandate a new directive
ala `#!key`, we'll have to go with an identifier; R7RS-large might be
able to pick either alternative.
This:
(keyword-call foo a b c &key d 3 e 4 f 5)
I think is perhaps inferior to this:
(keyword-call foo a b c (d 3 e 4 f 5))
Ideally it would be:
(foo a b c :d 3 :e 4 :f 5)