【发布时间】:2013-04-06 21:56:19
【问题描述】:
我刚开始使用 Clojure,才一个星期。 我尝试用 Clojure 方式解决一些标准问题。
我读到了带引号的列表,它们不会被评估,被认为是像向量这样的标准数据集合。
在哪些情况下,引用形式的列表将代替向量有用?
【问题讨论】:
-
除了由
cons-ing 建立的列表之外,我想不出很多。大多数情况下,您不必自己担心这一点。
标签: clojure
我刚开始使用 Clojure,才一个星期。 我尝试用 Clojure 方式解决一些标准问题。
我读到了带引号的列表,它们不会被评估,被认为是像向量这样的标准数据集合。
在哪些情况下,引用形式的列表将代替向量有用?
【问题讨论】:
cons-ing 建立的列表之外,我想不出很多。大多数情况下,您不必自己担心这一点。
标签: clojure
【讨论】:
Clojure 列表可以用作不可变的、持久的单链表。对于典型的列表操作,尤其是那些涉及头部和尾部操作的操作,列表将比向量执行得更好。此外,引用形式的列表不会立即评估,因此您可以将函数调用存储在其中并控制何时执行调用;在向量中做同样的事情,一切都会立即按顺序运行。
向量更适合随机访问,如果您需要将数据附加到集合的末尾,它们的性能会更好。它们也是“关联的”,这意味着您可以将它们视为映射,其中键是值的索引,并且可以将它们用于瞬态操作(这是另一个主题)。
【讨论】: