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. _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe