scala - Accessing the Accumulator & Element in `foldl` -


in scala's foldleft, know how access accumulator , element values in scala, not haskell.

i use foldleft find out, between 1 , 100, how many numbers have remainder of 1 when divided 3:

scala> list.range(1, 101).foldleft(0){ (acc, elem) =>      |    if (elem % 3 == 1) acc + 1      |    else acc      | } res2: int = 33 

how can same in haskell?

this direct translation of scala code haskell:

foldl (\acc x -> if x `mod` 3 == 1 acc + 1 else acc) 0 [1..100] 

in haskell, because of laziness of it, using foldl not idea, better choose foldl' or foldr, here foldr version:

foldr (\x acc -> if x `mod` 3 == 1 acc + 1 else acc) 0 [1..100] 

Comments

Popular posts from this blog

apache - Remove .php and add trailing slash in url using htaccess not loading css -

javascript - jQuery show full size image on click -