This site is a static rendering of the Trac instance that was used by R7RS-WG1 for its work on R7RS-small (PDF), which was ratified in 2013. For more information, see Home.

Ticket 383: Allow "if" to accept arbitrarily many if-then pairs

2012-07-15 01:22:09
WG1 - Core
2012-04-23 07:01:30

This makes Scheme if accept two or more arguments: see #382 for details and arguments pro. In brief, this form of if has fewer parentheses than cond in the common case where cond is functional and there is no need for implied begin, and requires less change to code using two- or three-argument if when further tests are added.

Arguments con: This is a major change for existing implementations that treat if as primitive (though this is not a required strategy, it is extremely common). In such implementations, this change can't be made by just adding a macro named if, as that will step on the primitive form; it needs to be a core-level change.


Considered by the editorial team to be hopeless and excluded from ballot. It's trivial to write your own if macro for this.