Haskell 仍然被';让';在GHCi中

Haskell 仍然被';让';在GHCi中,haskell,Haskell,我已经读了中的答案,但我仍然感到困惑。在Windows 10中运行的GHCi(版本8.2.1)和WinGHCi(版本1.0.6)中,当在提示下键入时,无论是否使用let,我似乎都能够将值绑定到表达式(见下文)。类似地,我似乎能够通过让fx=xx*和fx=xx来定义相同的函数* 那么在GHCi中什么时候真正需要let呢 如果是相关的,那么为GHCi设置的语言标志(我假设是默认值,因为我没有解释它们是什么)是 回答我自己的问题。我刚刚读了脚注 自GHC 8.0.1发布之日起,情况发生了变化;在GHC

我已经读了中的答案,但我仍然感到困惑。在Windows 10中运行的GHCi(版本8.2.1)和WinGHCi(版本1.0.6)中,当在提示下键入时,无论是否使用let,我似乎都能够将值绑定到表达式(见下文)。类似地,我似乎能够通过让fx=xx*和fx=xx来定义相同的函数*

那么在GHCi中什么时候真正需要let呢

如果是相关的,那么为GHCi设置的语言标志(我假设是默认值,因为我没有解释它们是什么)是


回答我自己的问题。我刚刚读了脚注

自GHC 8.0.1发布之日起,情况发生了变化;在GHCi中使用let-in声明 不再需要了。我们假设本版的大多数读者都会使用 GHC的早期版本,我们在整本书中都保留了let符号,这 不应造成任何错误或破损


在《第一原则》的Haskell编程中,它确认了让不再是必要的。

我认为你以前不能做到这一点,但如果你现在能做到,那就好了。也许它只是为了向后兼容?
Prelude> x = 3
Prelude> let y = 3
Prelude> x
3
Prelude> y
3
Prelude> x == y
True
Prelude>
base language is: Haskell2010
with the following modifiers:
  -XNoDatatypeContexts
  -XExtendedDefaultRules
  -XNoMonomorphismRestriction
  -XNondecreasingIndentation