[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Incompatibility with pattern matching

Andre van Tonder <andre@xxxxxxxxxxxxxxxxx> writes:

> It seems that the constructor paradigm chosen in the draft does not easily 
> accommodate future extensions for pattern matching.  The problem is that a 
> constructor can be many to one.  E.g., in
>   (define-type foo (x y)
>     (fields a immutable (+ x y)))
> we cannot automatically generate a pattern that can be used (like in MzScheme):
>   (match (make-foo 1 2)
>    ((make-foo x y) .....))
> Indeed, since the record types of this SRFI are not freely generated, 
> automatic destructuring is not a sensible operation.

This is true as far as pattern matching by position is concerned.  I
personally think this is a good thing, as pattern matching by position
scales very poorly. 

I don't think your argument extends to pattern matching by name, and I
can imagine a variety of abstractions on top of the SRFI draft that
would accomodate it.
Cheers =8-} Mike
Friede, Völkerverständigung und überhaupt blabla