[Haskell-beginners] Problems when trying to solve yaht exercise 3.10
ZelluX
zellux at gmail.com
Fri Mar 20 08:45:35 EDT 2009
Hi, all
I'm new to haskell and currently reading yaht. I find some problems when
trying to solve exercise 3.10.
The exersices asks to read a list of numbers terminated by a zero, and
figure out the sum and product of the list. My program is as follows:
ex3_10 = do
hSetBuffering stdin LineBuffering
numbers <- getNumber
let sum = foldr (+) 0 numbers
product = foldr (*) 1 numbers
putStrLn "The sum is " ++ show(sum)
putStrLn "The product is " ++ show(product)
getNumber = do
putStrLn "Give me a number (or 0 to stop):"
num <- getLine
if read num == 0
then return []
else do
rest <- getNumber
return (read num : rest)
But when i load the program, ghci reports error:
Couldn't match expected type `[a]' against inferred type `IO ()'
In the first argument of `(++)', namely `putStrLn "The sum is "'
In a stmt of a 'do' expression:
putStrLn "The sum is " ++ show (sum)
And i just don't understand the first sentence. Could you tell what does it
mean?
Thanks for your reply
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.haskell.org/pipermail/beginners/attachments/20090320/1ee32429/attachment-0001.htm
More information about the Beginners
mailing list