module PRO where
average1 :: IO Float
avarage1 =
do
putStrLn "Enter Marks in Form of a List"
marks <- getLine
let m = (read marks)::[Int]
x<-(sum' (m))
avg <- x/length (m)
if(x/=[])
then
putStrLn ("empty List")
else
putStrLn ("Your Avarage is " ++ show(avg))
sum' :: (Num a) => [a] -> a
sum' xs = foldl (\acc x -> acc + x) 0 xs
我的程序似乎不工作!我的问题是为什么我不能分配avg
sum'
函数的返回sum
?Haskell IO函数接受来自另一个函数的返回值
感谢名单jwodder里面!但我仍然不能让计算平均我得到错误 错误文件:。\ PRO.hs:10 - 在应用程序中的类型错误 ***表达式:fromInteger(长度米) ***期限:长度m * **类型:Int ***不匹配:整数 – 2011-06-12 03:16:52
@visuddha使用'fromIntegral'来强制整型。 – 2011-06-12 04:10:58