
On Mon, Mar 8, 2010 at 09:11, Joe Fox
Hi Guys ,
I am having a problem with patter matching . I have declared following data type
data TestData = DataConst1 Int String | DataConst2 Int Int | DataConst3 Sting String | DataConst4 String Int
and now i have function "test" which behaves similarly for (DataConst1 and DataConst2 ) and behaves similarly from DataConst3 and DataConst4.
for ex
test (DataConst1 x y) = x test (DataConst2 x y )= x
test (DataConst3 x y) = y test(DataConst4 x y )= y
no my problem here is , is there any way i can merge these 4 statements in two statements .... some way i can match DataConst1 and DataConst2 in the same line it would save me a lot of rewriting of code
I don't believe there is. AFAIU pattern matching is made on constructors, and I've never come across any way of abstracting over several constructors in a single pattern. As was suggested by Jonas, it might be worth exploring a tuple of two Either instead. /M -- Magnus Therning (OpenPGP: 0xAB4DFBA4) magnus@therning.org Jabber: magnus@therning.org http://therning.org/magnus identi.ca|twitter: magthe