我是Haskell的新手,在开始之后ghci我尝试过:
f x = 2 * x
Run Code Online (Sandbox Code Playgroud)
我获得了:
<interactive>:1:4: parse error on input `='
Run Code Online (Sandbox Code Playgroud)
我不明白.
奇怪的是,它之前运作良好.我想我已经完成了错误配置的Haskell.重新安装ghc6并不能解决问题.
有关信息,我使用的是Ubuntu 10.4,ghc6的版本是6.12.1-12
ken*_*ytm 159
在GHCi 7.x或更低版本中,您需要let在其中定义内容.
Prelude> let f x = x * 2
Prelude> f 4
8
Run Code Online (Sandbox Code Playgroud)
从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
Run Code Online (Sandbox Code Playgroud)
dav*_*420 50
当您键入Haskell源文件时,
f x = 2 * x
Run Code Online (Sandbox Code Playgroud)
是正确的.
直接输入ghci时,需要let在行的开头键入:
let f x = 2 * x
Run Code Online (Sandbox Code Playgroud)
Rae*_*eez 20
使用ghci的一个好的经验法则是你输入的任何代码都应该符合do-block语义; 也就是说,您可以在语法上假设您在IO monad中编程(如果这是新术语,请不要担心!我强烈建议您阅读本教程).
这个答案通过一个例子来说明这一点,并且可以提供对IO和ghci本质的更多工作洞察力.
| 归档时间: |
|
| 查看次数: |
53396 次 |
| 最近记录: |