2011-09-20 107 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是一維數組,它們是固定大小的;你可以自己成長! –

相關問題