【发布时间】:2014-12-28 17:45:27
【问题描述】:
我在 Windows 7 上使用版本 7.8.3 的 ghci 编译器。我收到错误消息,显示输入“->”时出现解析错误。我在 haskell 中有以下 lambda 表达式代码。
添加 =\x y -> x+y
【问题讨论】:
-
请注意,
=\是一个运算符。由于您想将 lambda 表达式分配给名称add,因此需要一个空格:= \。
标签: haskell
我在 Windows 7 上使用版本 7.8.3 的 ghci 编译器。我收到错误消息,显示输入“->”时出现解析错误。我在 haskell 中有以下 lambda 表达式代码。
添加 =\x y -> x+y
【问题讨论】:
=\ 是一个运算符。由于您想将 lambda 表达式分配给名称 add,因此需要一个空格:= \ 。
标签: haskell
在ghci 中以交互方式定义函数时,您必须使用let 来绑定它,如下所示:
let add = \x y -> x + y
【讨论】:
add x y = x + y,或者只是add = (+)。
= 和 \ 必须像这里一样用空格分隔,因为=\ 是合法的运算符名称。
我刚刚写了:
add = \x y -> x + y
main = do
print $ add 1 2
它编译并输出 3.
除非您的意图是练习无糖代码,否则我会将其写成:
add x y = x + y
或者
add = (+)
这是“无点”形式。
【讨论】: