我正在阅读“了解你的哈斯克尔”一书。
我正在尝试定义这个简单的函数,但编译器正在吐出它。它可能是非常基本和简单的东西,但我是一个完整的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 `='
前奏&GT;
答案 0 :(得分:5)
如果你read the book仔细地说,(强调我的话):
打开您喜欢的文本编辑器并打入此功能,该功能需要一个数字并将其乘以2。
doubleMe x = x + x
对于ghc来说这很好,因为它可以理解它是一个函数声明(并且书中没有告诉你在ghci中尝试它。事实上,shortly after它解释了let
如何能够使用“在GHCI中定义一个名称。在GHCI中使a = 1相当于在脚本中编写a = 1然后加载它。”)。为了使ghci明白您正在定义一个函数,您需要使用let
:
Prelude> let doubleMe x = x + x
Prelude> doubleMe 10
20
答案 1 :(得分:1)
在GHCi中,您使用let
关键字绑定新标识符。
> let doubleMe x = x + x
> doubleMe 3
> 6