Haskellinput错误parsing错误`='
我是Haskell的新手,开始ghci
我尝试了:
fx = 2 * x
我得到了:
<interactive>:1:4: parse error on input `='
我不明白。
奇怪的是,它之前运作良好。 我想我做了错误configuration的Haskell。 重新安装ghc6并不能解决问题。
有关信息,我使用Ubuntu 10.4和ghc6的版本是6.12.1-12
在GHCi 7.x或更低版本中,你需要一个let
定义的东西。
Prelude> let fx = 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> fx = x * 2 Prelude> f 4 8
当你input一个Haskell源文件时,
fx = 2 * x
是正确的。
当你直接inputghci时,你需要在行首inputlet
:
let fx = 2 * x
使用ghci的一个很好的经验法则是你input的任何代码应该符合do-block语义; 也就是说,你可以在句法上假定你正在编写IO monad(如果这是新的术语,别担心,我强烈推荐阅读本教程 )。
这个答案通过一个例子来说明这一点,并且可以提供对IO和ghci本质的更深入的了解。
从GHC 8.0.1开始,这不会再产生错误。