我是Haskell的新手,我的一位教授曾要求他制作一个简单的haskell程序,该程序可通过用户提供的三个角度确定三角形是否有效,并确定该三角形是正确的钝角还是斜角。我正在努力理解变量(尤其是数字)如何在haskell中工作,并且正在尝试至少完成确定有效性的函数,我的代码如下所示,
main = do
let angle1 = 0
let angle2 = 0
let angle3 = 0
putStrLn "input your angles."
angle1 <- getLine
angle2 <- getLine
angle3 <- getLine
if angle1 + angle2 + angle3 == 180
then putStrLn "triangle is valid"
else putStrLn "triangle is not valid"
我假设它与IO错误有关,或者说getline是字符串而不是int?任何帮助将不胜感激。
getLine
读取字符串,但实际上您需要数字。最小的解决方法是切换到readLn :: Read a => IO a
。