我正在尝试创建一个从用户获取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 `='
答案 0 :(得分:9)
使用let
绑定新变量。最后一行也有一些错误:首先,您必须在Double
和String
之间明确转换(例如,使用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)