我被告知在Lisp中只有原子和列表作为基本数据结构,这是否意味着Lisp中的向量是某种类型的列表?向量是否作为列表存储在基础?
中答案 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
是有效随机访问的结构,通常用一些额外的数据包装数组(自动增长)。列表最适合后续访问和快速插入。