我被告知,只有原子和列表,在Lisp中基本的數據結構,這是不是意味着在Lisp的載體是某種類型的列表?矢量存儲爲底層的列表嗎?什麼是Lisp的向量和列表之間的關係?
4
A
回答
4
你被告知什麼是準確但可能不會一直是清晰的描述。
Common Lisp中,至少:
* (type-of #(3 4 5))
(SIMPLE-VECTOR 3)
* (atom #(3 4 5))
T
的atom is defined如任何其不是CONS細胞 - 包括載體,類實例,等。所以,是的,一個向量官方認爲在Lisp中的「原子」,這就是爲什麼你被告知你被告知什麼。
2
至於其他地方vector
是結構有效的隨機訪問,通常包裝器與一些額外的(自動增長)陣列。列表最適合順序訪問和快速插入。
+1
有趣的是,Common Lisp的有'矢量推extend'它執行自動增長的一部分。在Scheme中,vector是一維數組,它們是固定大小的;你可以自己成長! –
相關問題
- 1. 循環變量和列表中的元素之間的關係是什麼?
- 2. C++和Ruby之間的關係和依賴關係是什麼?
- 3. TYPO3 cms和TYPO3流量之間的關係是什麼?
- 4. Emacs Lisp和Common Lisp之間的主要區別是什麼?
- 5. GCD中線程和隊列之間的關係是什麼?
- 6. dup()和close()系統調用之間的關係是什麼?
- 7. 什麼是系統類和PrintStream類之間的關係
- 8. malloc診斷和malloc相關的環境變量之間的關係是什麼?
- 9. using關鍵字和IDisposable接口之間的關係是什麼?
- 10. JLS,Java和相關技術之間的關係是什麼?
- 11. 負載和響應時間之間的關係是什麼?
- 12. JSDoc:模塊和名稱空間之間的關係是什麼
- 13. 核心數據中提取與單向關係之間的關係是什麼?
- 14. uniform sampler2D和GL_TEXTURE [NUM]和glGenTexture之間的關係是什麼?
- 15. MIDP和JME(和Android)之間的關係是什麼?
- 16. virtualenvwrapper中的環境和項目之間的關係是什麼?
- 17. 什麼是SPID和SQL Server的連接之間的關係?
- 18. 什麼是Facebook的ID和位置之間的關係?
- 19. Android中的Java和XML之間的關係是什麼?
- 20. UIView的setNeedsLayout,layoutIfNeeded和layoutSubviews之間的關係是什麼?
- 21. java中的包和jar文件之間的關係是什麼?
- 22. Javascript中的「new」和「prototype.constructor」之間的關係是什麼?
- 23. Model和Array之間的關係是什麼?它的複雜
- 24. Chrome藍牙API的`powered`和`available`之間的關係是什麼?
- 25. Windows Phone的XNA和XNA之間的關係是什麼?
- 26. SIGTSTP和SIGCHLD之間有什麼關係
- 27. PyTorch和Torch之間有什麼關係?
- 28. IRimTable和PersistenceStore之間有什麼關係?
- 29. foreach和IEnumerable之間有什麼關係?
- 30. STL和stdlib之間有什麼關係
我不會期待這一點。 Emacs lisp具有相同的行爲:'(atom [1 2])'產生't'。方案不限定用於原子的測試,但來自Chez方案的'(原子?OBJ)'定義相同的方式,作爲對equivelent'(未(對?OBJ))'。因此,Common Lisp不僅僅是這樣看待世界。 –
Whaddya知道。接得好。這會教會我在告訴其他人之前閱讀文檔。我撤回了我的答案。 –