[Haskell-beginners] Help in pattern matching
Stephen Tetley
stephen.tetley at gmail.com
Mon Mar 8 09:16:45 EST 2010
On 8 March 2010 12:06, Magnus Therning <magnus at therning.org> wrote:
[SNIP]
>
> What am I missing?
>
Hi Magnus
I was restating what Jonas mentioned but didn't elaborate - that Joe's
original program had a type error.
The solutions posted did two things:
1. Rewrite Joe's original (algebraic) data type to encode it with
products (aka pair - (,) ) and sums (Either) - this allowed some of
the pattern matching to be factored, reducing the number of cases in
the function test from 4 to 2
2. Correct the answer type to use a proper sum (Either Int String),
where previously some of declarations of test returned Int others
String (and so wouldn't type check).
Strictly speaking your program wasn't "equivalent" to the original
because it did step 2 and would actually work!
Best wishes
Stephen
More information about the Beginners
mailing list