[Haskell-cafe] Noob error: Type b -> c b Does not match IO a

Henning Thielemann lemming at henning-thielemann.de
Sun Jun 26 15:02:35 EDT 2005


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.



More information about the Haskell-Cafe mailing list