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

Reply via email to