如何解决输入\'=\'的Haskell错误解析错误
|| 我是Haskell的新手,开始starting0ѭ之后,我尝试了以下操作: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时,您需要在行首输入type3ѭ:
let f x = 2 * x
, 使用ghci的一个好的经验法则是,您输入的任何代码都应符合do-block语义;也就是说,可以从句法上假设您正在IO monad中进行编程(如果这是新术语,请不要担心!我强烈建议您通读本教程)。
该答案通过一个示例说明了这一点,并且可以提供有关IO和ghci性质的更多工作见解。
, 从GHC 8.0.1开始,它将不再产生错误。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。