为什么此代码中的varx不可变?
y = { g = 'a' }
z = { g = 1 }
varx = foo y
varx = foo z
有人知道吗?谢谢。
答案 0 :(得分:8)
我猜想这段代码是在Elm REPL中执行的。不可变变量在此的行为略有不同。来自榆木入门书:
https://elmprogramming.com/immutability.html
REPL的工作方式略有不同。每当我们将一个不同的值重新分配给一个现有的常量时,REPL都会将常量重新绑定到一个新的值。重新绑定过程杀死了该常数并将其恢复活力,就好像该常数以前从未指向任何其他值一样。
用Elm make普通方式编译Elm代码时,此代码将导致错误。