我被告知,只有原子和列表,在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知道。接得好。这会教会我在告诉其他人之前阅读文档。我撤回了我的答案。 –