为什么变量不是不可变的?

时间:2019-04-25 07:42:47

标签: elm

为什么此代码中的varx不可变?

y = { g = 'a' }
z = { g = 1 }

varx = foo y

varx = foo z

有人知道吗?谢谢。

1 个答案:

答案 0 :(得分:8)

我猜想这段代码是在Elm REPL中执行的。不可变变量在此的行为略有不同。来自榆木入门书:

https://elmprogramming.com/immutability.html

  

REPL的工作方式略有不同。每当我们将一个不同的值重新分配给一个现有的常量时,REPL都会将常量重新绑定到一个新的值。重新绑定过程杀死了该常数并将其恢复活力,就好像该常数以前从未指向任何其他值一样。

用Elm make普通方式编译Elm代码时,此代码将导致错误。