PS: A variation of this macro would work for procedures taking keyword arguments instead (e.g. my proposed DEFINE/KEYWORDS for SRFI 177).

Am So., 3. Mai 2020 um 15:56 Uhr schrieb Marc Nieper-Wißkirchen <>:
Am So., 3. Mai 2020 um 00:11 Uhr schrieb John Cowan <>:

> I would be happy to see this macro.  I did a little investigation, and found that identifier-syntax is supported iff syntax-case is.  I had hoped that at least some Schemes supported it separately from syntax-case.
Attached to this email is my first attempt at the macro DEFINE/OPTIONALS that has the semantics of SRFI 89 sans keyword arguments and which does the matching at the call site (unless the defined procedure is used as a first-class value). While the macro is written in SYNTAX-CASE, it is equally expressible with ER-MACRO-TRANSFORMER (although less elegantly) and even with SYNTAX-RULES (but this would be a pain in the ass without, say, SRFI 148). The only thing that is, in principle, not expressible by R7RS-small without identifier macros is the last clause of the definition of f.