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