On Wednesday, January 24, 2007 10:02 AM, Dinko Tenev wrote:
On 1/24/07, Brian Hulley <[EMAIL PROTECTED]> wrote:
A possible syntax could represent the
value being matched explicitly, say using ? to represent the value currently
being matched, then the pattern could be written as an equation:

   f (prodSize ? = Small) = ...
   f (prodSize ? = Medium) = ...
   f (prodSize ? = Big) = ...

...or maybe (Small = prodSize ?), etc., to be consistent with let bindings?

I like it!
Just to fix a minor error in one of my previous examples, and to show it in let-compatible form:

   -- "n+3" pattern matching against 2nd element
   j (_ : (n = ? - 3) : _ = toList ?) = ...

Also, perhaps the "binding" could be optional for "True = ", so that:

   test (True = isAlpha ?) = ...

could just be written as:

   test (isAlpha ?) = ...

(The presence of '?' in the pattern is enough to specify that it's an "active" pattern)

Here is another example, in current syntax and in "new" syntax:

   old (n + 3) | 0 < n = ...    -- using idiosyncratic n+k pattern

   new (n = ? - 3) | 0 < n = ...    -- rational reconstruction
or
   new (n @ (0 < ?) = ? - 3) = ... -- moving guard into pattern

Brian.
--
http://www.metamilk.com


_______________________________________________
Haskell-prime mailing list
Haskell-prime@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-prime

Reply via email to