2

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

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

在哪些情况下,引用形式的列表将代替向量有用?

4

2 回答 2

3

Macros and literal list instantiation. In macros you usually need syntax quote instead of normal quote

于 2013-04-14T21:04:41.390 回答
2

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

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

于 2013-04-14T21:26:19.880 回答