在大多数关于Haskell的文章中,你会发现像“Haskell中的数据是不可变的”这样的语句。我不太明白为什么。例如:
let a = 123
let a = 456
在main方法中有效。我刚刚将a
的数据从123
更改为456
。我错过了什么?在我的思路中,这可能是一个愚蠢的错误:/
祝你有个美好的一天!
答案 0 :(得分:16)
实际上,a
并未改变。请在ghci
中尝试查看:
> a = 123
> action = print a
> a = 456
> action
123
与具有可变变量的语言比较,例如蟒:
>>> a = 123
>>> def action(): print a
...
>>> a = 456
>>> action()
456