【发布时间】:2018-10-17 16:15:21
【问题描述】:
我最近一直在尝试进入函数式编程。具体来说,我对 Clojure 很感兴趣。我理解大多数关于数据不变性的论点,但有一件事对我来说没有意义。假设我有一个非常大的集合,例如包含数亿个项目的地图或数组。如果我不能改变它,那么这是否意味着每次我想添加一个新项目时,我实际上是在重新创建整个集合?这听起来像是一个可怕的想法。在一切都是不可变的语言中,如何处理这种情况?
【问题讨论】:
-
这在clojure website上有解释。
-
简答,不。
-
这是一篇不错的文章,有一些图片:hypirion.com/musings/understanding-persistent-vector-pt-1
标签: clojure functional-programming immutability