exported pattern matching

Marcin 'Qrczak' Kowalczyk qrczak at knm.org.pl
Thu Feb 9 15:02:21 EST 2006


Philippa Cowderoy <flippa at flippac.org> writes:

> Myself I'm of the view transformational patterns (as described in
> http://citeseer.ist.psu.edu/299277.html) are more interesting -
> I can't help wondering why they were never implemented?

Ah, so I wasn't first in implementing them in my language :-)

It includes the following kinds of patterns (x is the value to be
matched):

  when f args...    | matches if f x args... is true
                    |
  where f args... p | matches if p matches f x args...
                    |
  p1 & p2           | matches if both p1 and p2 match
                    | (p2 may use variables bound by p1)
                    |
  define {defs}     | matches anything, executes definitions,
                    | binds variables they introduce
                    |
  if cond           | matches anything if cond is true
                    |
  match e p         | matches anything if p matches e

This seems complex, OTOH it doesn't have guards.
Haskell wouldn't need those "args..." because it curries.

-- 
   __("<         Marcin Kowalczyk
   \__/       qrczak at knm.org.pl
    ^^     http://qrnik.knm.org.pl/~qrczak/


More information about the Haskell-prime mailing list