用于识别三角形的haskell函数

问题描述 投票:0回答:1

我是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?任何帮助将不胜感激。

haskell
1个回答
3
投票
主要问题是getLine读取字符串,但实际上您需要数字。最小的解决方法是切换到readLn :: Read a => IO a
© www.soinside.com 2019 - 2024. All rights reserved.