【问题标题】:haskell getting parse error on input `->'haskell在输入`->'上得到解析错误
【发布时间】:2014-12-28 17:45:27
【问题描述】:

我在 Windows 7 上使用版本 7.8.3 的 ghci 编译器。我收到错误消息,显示输入“->”时出现解析错误。我在 haskell 中有以下 lambda 表达式代码。

添加 =\x y -> x+y

【问题讨论】:

  • 请注意,=\ 是一个运算符。由于您想将 lambda 表达式分配给名称 add,因此需要一个空格:= \

标签: haskell


【解决方案1】:

ghci 中以交互方式定义函数时,您必须使用let 来绑定它,如下所示:

let add = \x y -> x + y

【讨论】:

  • 如果它是全局声明的函数,则不是。如果是这样的话,它应该只写成add x y = x + y,或者只是add = (+)
  • 另外,=\ 必须像这里一样用空格分隔,因为=\ 是合法的运算符名称。
【解决方案2】:

我刚刚写了:

add = \x y -> x + y

main = do
    print $ add 1 2

它编译并输出 3.

除非您的意图是练习无糖代码,否则我会将其写成:

add x y = x + y

或者

add = (+)

这是“无点”形式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-19
    • 2011-09-05
    • 1970-01-01
    • 2013-03-20
    • 1970-01-01
    相关资源
    最近更新 更多