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

Re: Incompatibility with pattern matching

This page is part of the web mail archives of SRFI 76 from before July 7th, 2015. The new archives for SRFI 76 contain all messages, not just those from before July 7th, 2015.

On Tue, 20 Sep 2005, Michael Sperber wrote:

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) .....))

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 agree that it scales poorly, but the same objection arguably applies to /constructors/ (and parents) with positional arguments, yet these are built into the basic syntax.