Lisp中vector和list之间的关系是什么?

时间:2011-09-20 10:14:07

标签: lisp common-lisp

我被告知在Lisp中只有原子和列表作为基本数据结构,这是否意味着Lisp中的向量是某种类型的列表?向量是否作为列表存储在基础?

2 个答案:

答案 0 :(得分:4)

您被告知的是准确但可能不是最清晰的描述。

在Common Lisp中,至少:

* (type-of #(3 4 5))
(SIMPLE-VECTOR 3)

* (atom #(3 4 5))
T

atom is defined作为不是CONS单元的任何东西 - 包括向量,类实例等。所以是的,一个向量被正式视为Lisp中的“原子”,这就是为什么你被告知你被告知的原因。

答案 1 :(得分:2)

与其他地方一样vector是有效随机访问的结构,通常用一些额外的数据包装数组(自动增长)。列表最适合后续访问和快速插入。