输入'='时Haskell错误解析错误?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (18)

我是Haskell的新手,开始ghci尝试后:

f x = 2 * x

我获得了:

<interactive>:1:4: parse error on input `='

我不明白。

奇怪的是,它以前运作良好。我想我做了错误配置的Haskell。重新安装ghc6并不能解决问题。

有关信息,我使用Ubuntu 10.4和ghc6的版本是6.12.1-12

提问于
用户回答回答于

在GHCi 7.x或更低版本中,你需要一个let定义其中的内容。

Prelude> let f x = x * 2
Prelude> f 4
8

从GHC 8.0.1开始,GHCi支持顶级绑定,因此OP的代码将不会改变。

GHCi, version 8.0.1.20161213: http://www.haskell.org/ghc/  :? for help
Prelude> f x = x * 2
Prelude> f 4
8
用户回答回答于

当你输入一个Haskell源文件时,

f x = 2 * x

是正确的。

当你直接输入ghci时,你需要let在行首输入:

let f x = 2 * x

扫码关注云+社区