Hi Emil, I'm beginning in monad area... I don't know about monomorphis restriction, but foldM works, a lot of thanks... Matias.... tnks too, i'm conscious about "return" in the monadic chain.
thnks. On Dec 4, 2007 12:00 PM, Emil Axelsson <[EMAIL PROTECTED]> wrote: > Hi, > > Depending on what you want, you should either remove 'return' or change to > 'foldM' (from Control.Monad). If you choose the latter, you also need to add a > type signature to f (because of the monomorphism restriction). > > / Emil > > > > > On 2007-12-04 14:43, Rafael wrote: > > Hi... I give this error using hugs for the code: > > > > --------------------------------------------------- > > f = foldl (\x y -> add x y) 0 [1,2,3] > > add x y = return (x + y) > > --------------------------------------------------- > > I try: > > > > f = foldl (\x y -> counter x y) (return 0) [1,2,3] > > > > but it dont solve, and with ghci: > > > > " > > Occurs check: cannot construct the infinite type: b = m b > > Expected type: b > > Inferred type: m b > > In the expression: add x y > > In a lambda abstraction: \ x y -> add x y > > " > > > > thnks. > > > > att > > Rafael > > _______________________________________________ > > Haskell-Cafe mailing list > > Haskell-Cafe@haskell.org > > http://www.haskell.org/mailman/listinfo/haskell-cafe > _______________________________________________ > Haskell-Cafe mailing list > Haskell-Cafe@haskell.org > http://www.haskell.org/mailman/listinfo/haskell-cafe > _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe