On Sun, 26 Jun 2005, Daniel Fischer wrote: > > m x y = if x==0 then 0 else x*y > > Plain > > foldr m 1 > > does fine, in fact much better than > > foldl' (*) 1 . upTo (== 0), > > both in hugs and ghc, regarding speed and memory usage.
E.g. foldr m 1 [a,b,c] means m a (m b (m c 1))) That is, it is not possible for the runtime system to store interim numeric results, it can only accumulate function calls. _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe