writing a function to build a list of ints from user input
Tue, 06 May 2003 21:05:46 +0000
I'm trying to write a function that builds a list from user input. This
is what I've come up with so far.
--a program that makes a list of numbers from user input
makeList :: IO [Int]
makeList = do s <- getLine
if read s /= 0 then return (read s:makeList) else
However it fails with the following error:
Couldn't match `[a]' against `IO [Int]'
Expected type: [a]
Inferred type: IO [Int]
In the second argument of `(:)', namely `makeList'
In the first argument of `return', namely `((read s) : makeList)'
It's trying to match a list, [a], with type IO [Int]. This causes it to
fail. How do I get around this?
Brain: Here we are, Pinky--at the dawn of time!
Pinky: Narf, Brain. Wake me at the noon of time.