Personal tools

99 questions/Solutions/4

From HaskellWiki

< 99 questions | Solutions(Difference between revisions)
Jump to: navigation, search
(correction (foldl) and shortened version of foldr)
Line 8: Line 8:
  
 
<haskell>
 
<haskell>
myLength'  =  foldr (\_ n -> n + 1) 0
+
myLength'  =  foldl (\n _ -> n + 1) 0
myLength'' =  foldr (\n _ -> n + 1) 0
+
myLength''  =  foldr (\_ n -> n + 1) 0
 +
myLength''' =  foldr (\_ -> (+1)) 0
 
</haskell>
 
</haskell>
  
 
This is <hask>length</hask> in <hask>Prelude</hask>.
 
This is <hask>length</hask> in <hask>Prelude</hask>.

Revision as of 01:39, 20 November 2010

(*) Find the number of elements of a list.

myLength           :: [a] -> Int
myLength []        =  0
myLength (_:xs)    =  1 + myLength xs
myLength'   =  foldl (\n _ -> n + 1) 0
myLength''  =  foldr (\_ n -> n + 1) 0
myLength''' =  foldr (\_ -> (+1)) 0
This is
length
in
Prelude
.