Re: [Haskell-cafe] Type error in final generator

2007-12-08 Thread Loganathan Lingappan
Thanks Bryan and Derek. This works!
Logo

- Original Message 
From: Derek Elkins <[EMAIL PROTECTED]>
To: Bryan O'Sullivan <[EMAIL PROTECTED]>
Cc: Loganathan Lingappan <[EMAIL PROTECTED]>; haskell-cafe@haskell.org
Sent: Saturday, December 8, 2007 4:53:54 PM
Subject: Re: [Haskell-cafe] Type error in final generator


On Sat, 2007-12-08 at 16:39 -0800, Bryan O'Sullivan wrote:
> Loganathan Lingappan wrote:
> 
> > main = do
> > hSetBuffering stdin LineBuffering
> > numList <- processInputs
> > foldr (+) 0 numList
> 
> The type of main is understood to be IO (), so it can't return
 anything.
>  You could work around this by rewriting the last line above as
 follows:
> 
> print (foldr (+) 0 numList)
> 
> This prints the number, which is presumably what you want, and print
 has
> type IO (), so it works out nicely here.

Nitpicking:

Actually, as the error message says, the type of main is IO a so it can
'return' -anything- and that will be discarded as the type makes clear.
The issue is that foldr (+) 0 numList :: Integer and that's not IO a
 for
any a.  Either way, Bryan's suggestion is probably what you want.




___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] Type error in final generator

2007-12-08 Thread Loganathan Lingappan
Hi,
I am new to Haskell. I wrote the following code:

module Main
where

import IO

main = do
hSetBuffering stdin LineBuffering
numList <- processInputs
foldr (+) 0 numList

processInputs = do
putStrLn "Enter a number:"
strNum <- getLine
let num = read strNum
if num == 0
then return []
else do
rest <- processInputs
return (num : rest)


And am getting the following errors:

ERROR "Ex310.hs":6 - Type error in final generator
*** Term   : foldr (+) 0 numList
*** Type   : Integer
*** Does not match : IO a

Any pointers to the source of this error would be appreciated.
Thanks,
Logo

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe