什么定义了Clojure中的"持久"数据结构?

ade*_*sin 2 clojure

http://clojure.org/data_structures页解释了所有的Clojure集合为"不可改变的,持久的".我一直在寻找一个明确的定义,确切地说"持久性"在这种情况下意味着什么,以及是否有人对此有明确的解释?

Aug*_*aas 10

它指的是同一种持续性的这个维基百科文章.总结如下:

在计算中,持久数据结构是一种数据结构,它在修改时始终保留其自身的先前版本.这样的数据结构实际上是不可变的,因为它们的操作不会(可见地)就地更新结构,而是总是产生新的更新结构.(持久性数据结构不是提交给持久存储的数据结构,例如磁盘;这是对"持久性"这个词的不同和无关的意义.)

  • Clojure 版本的另一点不值一提的是,它们使用结构共享来减少不变性的堆使用开销 (2认同)