I have reviewed the comments made on this list and SRFI 88 and have
come to the conclusion that a parameter list syntax different from
DSSSL may be a more elegant and acceptable way of extending Scheme to
support optional and named parameters. My original proposal based on
the DSSSL syntax was aimed to ensure that several implementations of
Scheme would support a compatible approach for optional and named
parameters. However, I have polled the implementors of Scheme
implementations which support a DSSSL-like syntax and most of them
are willing to consider a cleaner syntax. My goal is thus achievable
even if a different syntax is used, as long as most of these Scheme
implementors adopt it. The new draft presents an alternate approach
which could replace the original proposal if there is consensus. If
however this new approach is even more controversial I will revert to
the original DSSSL-like syntax.
Donavan Kolbly assured me that the new draft of SRFI 89 will be
available on the SRFI web site within a few days. In the meantime
you can get it on my web page at:
http://www.iro.umontreal.ca/~feeley/srfi-89.html
The new syntax does away with the `#!optional', `#!key' and `#!rest'
markers. Instead, a syntax that is inspired from EBNF is used to
denote optional parts (square brackets in the parameter list around
the optional parameters). Moreover, to reinforce the similarity
between the appearance of `defines' and the call site, named
parameters are specified in the parameter list by giving both the
keyword and the variable corresponding to that parameter. Finally,
the approach now supports required named parameters. All the details
are given in the SRFI document.
Marc