I agree that it's the overhead of (,), but I don't see why there would be any overhead for doing this.
-- Hal Daume III "Computer science is no more about computers | [EMAIL PROTECTED] than astronomy is about telescopes." -Dijkstra | www.isi.edu/~hdaume On Sat, 9 Feb 2002, Jorge Adriano wrote: > On Friday 08 February 2002 23:52, Hal Daume III wrote: > > I've tried using a strict fold: > > > > foldl' f a [] = a > > foldl' f a (x:xs) = (foldl' f $! f a x) xs > > > > but that has no effect (or minimal effect). > > That wouldn't work even if if laziness is the problem because that would only > cause the elements of the list to be evaluated to head normal form, the > elements of the pair would not be evaluated so you'd have a 'suspension of > (minus and plus) operations'. > > instead of > > (\x (a,b) -> (x+a,x-b)) > try > > (\x (a,b) -> (((,) $! x-a)$! x-b) ) > > I just noticed that you were the one who sent me the DeepSeq module. > This is the kind of place where I want to use it. > Instead of $!, try $!!. > > > And Konst Sushenko wrote: > >>My guess is that it is due to the laziness of the addition/subtraction > >>in (,) > > Seems to me like lazyness is not the right guess because both functions Hall > first posted were lazy. So I think it's just the overhead of applying (,) > besides (+) and (-) in each step. Do I make sense or am I missing something? > > J.A. > _______________________________________________ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell