2011-09-20 65 views

回答

4

你被告知什么是准确但可能不会一直是清晰的描述。

Common Lisp中,至少:

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

* (atom #(3 4 5)) 
T 

atom is defined如任何其不是CONS细胞 - 包括载体,类实例,等。所以,是的,一个向量官方认为在Lisp中的“原子”,这就是为什么你被告知你被告知什么。

+0

我不会期待这一点。 Emacs lisp具有相同的行为:'(atom [1 2])'产生't'。方案不限定用于原子的测试,但来自Chez方案的'(原子?OBJ)'定义相同的方式,作为对equivelent'(未(对?OBJ))'。因此,Common Lisp不仅仅是这样看待世界。 –

+0

Whaddya知道。接得好。这会教会我在告诉其他人之前阅读文档。我撤回了我的答案。 –

2

至于其他地方vector是结构有效的随机访问,通常包装器与一些额外的(自动增长)阵列。列表最适合顺序访问和快速插入。

+1

有趣的是,Common Lisp的有'矢量推extend'它执行自动增长的一部分。在Scheme中,vector是一维数组,它们是固定大小的;你可以自己成长! –

相关问题