
That's the thing. I want to return a list of people who are not overdrawn. Something like: type NI = Int type Age = Int type Balance = Int type Person = (NI, Age, Balance) type Bank = [Person] credit :: Bank -> [Person] credit [(a,b,c)] = [(a,b,c)] if c >= 0 then [(a,b,c)] else error "overdrawn customer" except this doesn't work with things like: credit [(1,2,3),(4,5,6)] or credit [(1,2,3),(4,5,6),(7,8,-9)] Andrew Coppin wrote:
junkywunky wrote:
type Person = (NI, Age, Balance) type Bank = [Person]
credit :: Bank -> [Person] credit [(a,b,c)] = [(a,b,c)]
This code works when I type in:
credit [(1,2,3)]
but doesn't work when I type in:
credit [(1,2,3),(4,5,6)]
Any help?
Thanks in advance.
The expression [(1,2,3),(4,5,6)] doesn't match the pattern [(a,b,c)].
Now, since Bank and [Person] are actually the exact same type and the credit function actually does nothing, you could simply write
credit x = x
(Or, for that matter, credit = id.) It would then work for both examples.
I presume that the idea is that the credit function will eventually do something - in that case, it might be helpful to say exactly what you want it to actually do.
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
-- View this message in context: http://www.nabble.com/Newbie-list-question-tf3823011.html#a10823244 Sent from the Haskell - Haskell-Cafe mailing list archive at Nabble.com.