我在Windows 7上使用ghci编译器与版本7.8.3。我得到错误消息显示输入` - >'解析错误。在haskell中,我有以下代码用于lambda表达式。haskell得到解析错误输入` - >'
附加= \ XY - > X + Y
我在Windows 7上使用ghci编译器与版本7.8.3。我得到错误消息显示输入` - >'解析错误。在haskell中,我有以下代码用于lambda表达式。haskell得到解析错误输入` - >'
附加= \ XY - > X + Y
当ghci
交互定义一个函数,你必须使用绑定它let
这样的:
let add = \x y -> x + y
如果它是全局声明的函数,则不适用。如果是这样的话,它应该只是用加法形式'add x y = x + y',或者只是'add =(+)'来写。 – Carcigenicate 2014-11-01 18:13:22
另外,'='和'\'必须用空格分隔,因为'= \'是一个合法的操作符名称。 – 2014-11-01 18:13:36
我只是写:
add = \x y -> x + y
main = do
print $ add 1 2
它编译并输出3.
除非哟乌尔意图是,虽然练习unsugared代码,我会写出来的:
add x y = x + y
或者
add = (+)
这是“点免费”的形式。
请注意'= \'是一个运算符。既然你想给名称'add'分配一个lambda表达式,你需要一个空格:'= \'。 – 2014-11-01 18:51:25