Haskell GHCI编译器:在定义和声明简单函数时解析repl中的错误



我正在阅读"Learn You A Haskell"一书。

我正在尝试定义这个简单的函数,但编译器将其吐出。这可能是非常基本和简单的东西,但我是一个完整的Haskell新手:

GHCi, version 7.6.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.
Prelude> doubleMe x = x + x
<interactive>:2:12: parse error on input `='

前奏>

如果你仔细阅读这本书,它说(强调我的):

打开您最喜欢的文本编辑器并输入这个函数,该功能需要一个数字并将其乘以 2。

    doubleMe x = x + x  

这对于ghc来说很好,因为它可以理解它是一个函数声明(而且这本书没有告诉你在ghci中尝试它。事实上,在它解释了如何使用let"在GHCI中定义名称"之后不久。在 GHCI 中让 a = 1 相当于在脚本中编写 a = 1 然后加载它。要使ghci理解您正在定义一个函数,您需要使用let

Prelude> let doubleMe x = x + x
Prelude> doubleMe 10
20

在 GHCi 中,您可以使用 let 关键字绑定新标识符。

> let doubleMe x = x + x
> doubleMe 3
> 6

相关内容

最新更新