我们什么时候需要Clojure中的引用列表?

时间:2013-04-14 20:42:11

标签: clojure

我刚刚开始使用Clojure,它只用了一个星期。 我尝试用Clojure的方式解决一些标准问题。

我读到了引用列表,这些列表没有得到评估,被认为是像矢量这样的标准数据集合。

列表的引用形式有用而不是向量的情况是什么?

2 个答案:

答案 0 :(得分:3)

宏和文字列表实例化。在宏中,您通常需要语法引用而不是正常引用

答案 1 :(得分:2)

Clojure列表可以用作不可变的,持久的单链表。对于典型的列表操作,尤其是涉及头部和尾部操作的列表操作,列表将比向量执行得更好。此外,列表的引用形式不会立即进行评估,因此您可以在其中存储函数调用并控制执行调用的时间;在向量中做同样的事情,一切都会按顺序运行。

向量更适合随机访问,如果需要将数据附加到集合的末尾,它们的性能会更好。它们也是“关联的”,这意味着您可以将它们视为映射,其中键是值的索引,您可以将它们用于瞬态操作(这是一个完整的其他主题)。