我正在尝试创建一个简单的函数,从用户(x,y)获取2个变量
进行计算,然后将其打印出来.
由于某种原因没有成功:
main = do
putStrLn "Insert Number1"
x <- readLn
putStrLn "Insert Number2"
y <- readLn
z = (x * y * 0.01)
putStrLn "Result: " ++z
Run Code Online (Sandbox Code Playgroud)
我得到的错误:
test.hs:6:11: parse error on input `='
Run Code Online (Sandbox Code Playgroud)
使用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)
Run Code Online (Sandbox Code Playgroud)