[Haskell-beginners] combine pattern matching against named fields and tuples

Thomas Davie tom.davie at gmail.com
Tue Apr 7 03:40:02 EDT 2009


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


More information about the Beginners mailing list