Am Mo., 9. März 2020 um 00:28 Uhr schrieb Lassi Kortela <xxxxxx@lassi.io>:
Since R7RS-large is a large language, it's also appropriate to add
something like this. (I would not have advocated keyword args for
R7RS-small, and I think it's good that -small was kept simple. It's
interesting that even case-lambda is in its own library in -small.)

Would you prefer to have `let-keywords` or some similar construct in
R7RS-large instead? (I mean to ask in a neutral tone; not intending to
start an argument. I have confidence that this group will eventually
make a good decision one way or another, so I don't feel threatened by
exploring alternatives.)

`let-optionals' has the advantage that we do no need any heavy new syntax to call and to define procedures taking optional arguments.  It also has the advantage that no new concept is needed (namely that of keyword arguments).

It is no full replacement for keyword arguments, though.  You can meaningfully redo a procedure like `fox' from SRFI 183 with keyword arguments but not with optional arguments in the sense of `let-optionals'.

Thus, the answer also depends on whether we want and need to have the full power of keyword arguments (and the full potential of abusing them) in R7RS-large or whether we think it is possible and sensible to stick to the way optional arguments have been handled so far in R7RS-small/R7RS-large.

I haven't understood Lassi's argument about standardization, though.  As much as `call/kw' can be standardized, so can `let-optionals'.  Some may even say that the advantage of the latter is that it has been in use for a long time (for example, the reference implementation of SRFI 1 from 1998/99 is already using `let-optionals').