[Haskell-beginners] Better way to write this?

Tim Perry perry2of5 at yahoo.com
Tue Mar 9 15:26:29 EST 2010


I'm working my way through the 99 sample programs for haskell and I'm on #4: find the number of elements in a list.
http://haskell.org/haskellwiki/99_questions/1_to_10

I wrote the obvious recursion. Then I rewrote it using foldl
myLength :: [a] -> Int
myLength [] = 0
myLength xs = foldl addOne 0 xs
   where addOne lhs rhs = lhs + 1

However, the solution given uses notation that confuses my little mind. Can someone point me to a good resource on this notation?

myLength :: [a] -> Int
myLength =  foldr (\x n -> n + 1) 0


Thanks,
Tim


More information about the Beginners mailing list