GHCi提示符下的声明

9

我刚刚安装了Windows版的Haskell平台(版本为2011.2.0.1),并开始阅读HaskellQuestions.pdf。

第二个问题要求答案为“x = 3”。但是当我在GHCi中输入时,却得到以下结果:

GHCi, version 7.0.3: http://www.haskell.org/ghc/  :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
Loading package ffi-1.0 ... linking ... done.
Prelude> x = 3

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

为什么?我检查了答案,我是正确的。等号有什么问题吗?
1个回答

11

在GHCi中,如果要给一个值赋值,你需要使用

let x = 3

在普通的 Haskell 代码中,x = 3 是有效的(参见下面的注释)。

Real World HaskellGetting Started 页面提供了很多关于使用 GHCI 的有用信息。

你也可以参考 GHCi 的文档(但个人而言,我觉得 Real World Haskell 更易懂)。

注:正如EdvardM 在评论中指出的那样,这种情况下使用 let 的语法来自于 Haskell 的 do 表示法(如果你刚开始学,不要为自己感到疑惑。请慢慢来,享受编程的过程,并且它应该很快就会变得清晰明了)。


1
谢谢。我有没有漏掉一些文档? - Ian
1
不,我刚开始时也遇到了完全相同的问题 :-). Haskell 的 GHCi 文档确实提到了使用 let,但很容易被忽略。 - Zach L
是的。一旦你理解了Haskell的工作原理,并且为了能够更改x(你可能希望稍后说x是不同的东西),你需要使用let语法。通过交互式工具,你可以随时尝试实验和更改代码,如果不能重新绑定符号,你将会受到严重影响。 - EdvardM

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接