【问题标题】:When do we need quoted lists in Clojure?我们什么时候需要 Clojure 中的引用列表?
【发布时间】:2013-04-06 21:56:19
【问题描述】:

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

我读到了带引号的列表,它们不会被评估,被认为是像向量这样的标准数据集合。

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

【问题讨论】:

  • 除了由cons-ing 建立的列表之外,我想不出很多。大多数情况下,您不必自己担心这一点。

标签: clojure


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-17
      • 2019-08-13
      • 1970-01-01
      • 1970-01-01
      • 2021-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多