
7 Apr
2009
7 Apr
'09
3:40 a.m.
On 7 Apr 2009, at 09:30, Michael Mossey wrote:
I'm trying to do something like this:
data Thing = Thing { field1, field2 :: ( Int, Int ) }
myfunc = Thing { field1 ( _, x ) } = x
but it doesn't work. That is, I want to match against the second item of the tuple which is the named field1. I'm not just trying to do this particular thing, but trying to figure out if some kind of general pattern matching can be done like this.
Firstly, you have an extra equals in there, secondly, in a pattern match constructions must go in parentheses, and finally, you're missing an equals inside the record: myFunc (Think {field1 = (_,x)}) = x Bob