为什么没有更多的语言使用像Clojures这样的不可变模型?

时间:2016-12-21 16:57:42

标签: clojure functional-programming immutability

我对clojure如何处理不可变的理解大多来自this。这对我来说似乎很聪明;它使得复制和更改一个值或向集合的末尾添加新值几乎与可变对象一样快。但是,根据我的理解,许多(如果不是大多数)其他严重依赖不可变的语言不使用这种结构(Haskell,Scala等)。这是为什么?我错过了这样一种树形结构,或者只是一个相对较新的想法?

1 个答案:

答案 0 :(得分:3)

简短的回答是你的理解是错误的。您所指的数据结构称为 persistent ,几乎所有函数式编程语言至少已经使用了几十年,包括Scala和Haskell。

它们仍然没有被大量使用的主要是命令式语言,它也是事后想法的功能性编程。这就是为什么要尝试不变的原因#34;在这些语言中,效率通常远低于主要功能语言。