试图在Haskell中创建一个简单的数学方程式

时间:2011-10-23 20:43:48

标签: haskell

我正在尝试创建一个从用户获取2个变量的简单函数(x,y)  
进行计算,并将其打印出来。
出于某种原因没有成功:

main = do
    putStrLn "Insert Number1"
    x <- readLn
    putStrLn "Insert Number2"
    y <- readLn
    z = (x * y * 0.01)
    putStrLn "Result: " ++z

我得到的错误:

test.hs:6:11: parse error on input `='

1 个答案:

答案 0 :(得分:9)

使用let绑定新变量。最后一行也有一些错误:首先,您必须在DoubleString之间明确转换(例如,使用show),其次,您需要记住优先级。在Haskell中,函数应用程序比记录更新之外的任何东西都更紧密,所以你写的内容解析为(putStrLn "Result: ") ++ z,这实际上没有意义。修好了这些事情:

main = do
    putStrLn "Insert Number1"
    x <- readLn
    putStrLn "Insert Number2"
    y <- readLn
    let z = x * y * 0.01
    putStrLn ("Result: " ++ show z)