试着用Haskell建立一个简单的数学方程

试着用Haskell建立一个简单的数学方程,haskell,Haskell,我试图创建一个简单的函数,从用户那里获取两个变量(x,y) 计算并打印出来 由于某种原因而没有成功: main = do putStrLn "Insert Number1" x <- readLn putStrLn "Insert Number2" y <- readLn z = (x * y * 0.01) putStrLn "Result: " ++z 使用let绑定新变量。最后一行还有一些错误:首先,必须在Double和Str

我试图创建一个简单的函数,从用户那里获取两个变量(x,y)
计算并打印出来
由于某种原因而没有成功:

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

使用
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)
main=do
putStrLn“插入编号1”

x使用
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)
main=do
putStrLn“插入编号1”

x这个特别的错误是因为你需要在你的
z=…
定义前面加一个
let
关键字。这个特别的错误是因为你需要在你的
z=…
定义前面加一个
let
关键字。haskell编译器可以通过它来推断
x
y
的类型
0.01的类型和函数
(*)
。否则,您必须使用
x sily问题指定它:我试图运行“:load test.hs”,但什么都没有发生,我该如何输入x和y变量?@Asaf在加载文件后,运行
main
。haskell编译器可以通过
0.01
类型和函数
(*)
推断
x
y
的类型,这是一件非常酷的事情。否则,您必须使用
x sily问题指定它:我试图运行“:load test.hs”,但什么也没有发生,我该如何输入x和y变量?@Asaf加载文件后,运行
main