Haskell:什么是不可变数据?

时间:2017-06-07 07:38:53

标签: haskell functional-programming

在大多数关于Haskell的文章中,你会发现像“Haskell中的数据是不可变的”这样的语句。我不太明白为什么。例如:

let a = 123
let a = 456

在main方法中有效。我刚刚将a的数据从123更改为456。我错过了什么?在我的思路中,这可能是一个愚蠢的错误:/

祝你有个美好的一天!

1 个答案:

答案 0 :(得分:16)

实际上,a并未改变。请在ghci中尝试查看:

> a = 123
> action = print a
> a = 456
> action
123

与具有可变变量的语言比较,例如蟒:

>>> a = 123
>>> def action(): print a
... 
>>> a = 456
>>> action()
456