[Haskell-beginners] Problems when trying to solve yaht exercise 3.10
zellux at gmail.com
Fri Mar 20 08:45:35 EDT 2009
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 
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
Thanks for your reply
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Beginners