[Haskell-cafe] foldl vs foldl'
Daniel Fischer
daniel.is.fischer at web.de
Tue Nov 4 18:37:47 EST 2008
Am Mittwoch, 5. November 2008 00:08 schrieb Daryoush Mehrtash:
> Are there cases (function or list) where the result of foldl (or
> foldr)would be different that foldl' (or foldr')?
>
> thanks,
>
> daryoush
Simple example:
import Data.List
weird :: Int -> Int -> Int
weird _ 0 = 0
weird x y = x*y
list :: [Int]
list = [1, 2, 3, 4, undefined, 6, 7, 8, 9, 0]
okey = foldl weird 1 list
boom = foldl' weird 1 list
*Main> okey
0
*Main> boom
*** Exception: Prelude.undefined
since foldl' evaluates strictly (to WHNF), it can die on encountering an
undefined value in the list where foldl doesn't.
More information about the Haskell-Cafe
mailing list