
Or, call median with your list of ints and forget about mainProg...:) Chris. On Wed, 20 Aug 2008, C.M.Brown wrote:
Barry,
On another note, you may want to avoid monads altogether for this. You can run this straight from ghci (replacing mainProg with main)
mainProg :: [Int] -> Int mainProg arg = median lst
and then call mainProg with your desired list of stings
mainProg [1,2,3,4]
Chris.
On Wed, 20 Aug 2008, Yitzchak Gale wrote:
Hi Barry,
Barry Burd wrote:
median :: [Int] -> Int median lst = case medians lst of -- All the values in the result are the same, we just pick the first one x:xs -> x
main = do putStr "Enter a list: " lst <- getLine median lst
I'm sure this is because Haskell isn't automatically changing a String to a List of numbers. But how can I do this?
Use the "read" function. Watch out, though - there is no error checking there. So if the user enters a string that does not have the right syntax for a Haskell list of integers, your program will halt with an error message.
You have another problem - you used the "median" function as a step in a do block - but each step in a do block must have type "IO a" for some type a.
Here's how you could write your main function:
main = do putStr "Enter a list: " lst <- getLine print $ median $ read lst
Regards, Yitz _______________________________________________ Beginners mailing list Beginners@haskell.org http://www.haskell.org/mailman/listinfo/beginners
_______________________________________________ Beginners mailing list Beginners@haskell.org http://www.haskell.org/mailman/listinfo/beginners