我已经阅读了这个问题的答案,但我仍然感到困惑。在 Windows 10 中运行的 GHCi(版本 8.2.1)和 WinGHCi(版本 1.0.6)中,在提示符下键入时,无论是否使用 let,我似乎都能将值绑定到表达式(请参阅以下)。同样,我似乎能够通过let fx = x x* 和fx = x x*定义相同执行的函数
Prelude> x = 3
Prelude> let y = 3
Prelude> x
3
Prelude> y
3
Prelude> x == y
True
Prelude>
Run Code Online (Sandbox Code Playgroud)
那么在 GHCi 中什么时候真正需要let呢?
如果相关,为 GHCi 设置的语言标志(我认为这是默认值,因为我没有弄乱它们)是
base language is: Haskell2010
with the following modifiers:
-XNoDatatypeContexts
-XExtendedDefaultRules
-XNoMonomorphismRestriction
-XNondecreasingIndentation
Run Code Online (Sandbox Code Playgroud)
回答我自己的问题。我刚刚阅读了脚注
这在 GHC 8.0.1 发布时发生了变化;不再需要在 GHCi 中使用 let in 声明。由于我们假设本版的大多数读者将使用 GHC 的早期版本,因此我们在整本书中都保留了 let 符号,这不会导致任何错误或损坏。
在Haskell Programming From First Principles 中,这证实了let不再是必要的。
| 归档时间: |
|
| 查看次数: |
107 次 |
| 最近记录: |