[r6rs-discuss] Scheme pattern matching & R*RS
cowan at mercury.ccil.org
Tue Dec 14 13:42:11 EST 2010
Per Bothner scripsit:
> I.e. where (var1 var2 var3) is a valid pattern matching a 3-element list.
> This syntax for patterns has the advantage that it is a generalization of
> syntax-rules patterns, in addition to being natural and compact.
Ah, I see. I think that the natural extension of define is to allow it
to define a single named pattern-matching procedure rather than allowing
it to define multiple names simultaneously.
> In that case, how do you distinguish:
> (define (function-name param1 param2) <expression>)
> (define (var1 var2 var3) <expression>)
The former is the only meaning, but with pattern-matching define
you may also write (define (foo (v1 v2) v3) ...) to define
a procedure which accepts two arguments, the first of which is a
John Cowan cowan at ccil.org
"Not to know The Smiths is not to know K.X.U." --K.X.U.
More information about the r6rs-discuss