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

dja*_*per 3 elm

为什么varx在这段代码中不是不变的?

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

varx = foo y

varx = foo z
Run Code Online (Sandbox Code Playgroud)

有人知道吗 谢谢。

Hol*_*r L 8

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

https://elmprogramming.com/immutability.html

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

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