|
|
1
19
cons单元格通常有两个指针,可以指向任何东西。当然,一般的用法是指向左边的“value”,指向右边的另一个cons单元格(或nil)。 |
|
|
2
13
cons单元比链表节点更接近二叉树节点。car和cdr返回两个孩子,可以是nil、atoms或其他cons单元。 |
|
|
3
7
在Lisp中,cons单元格包含一对值。如果cons单元格在变量中
按照惯例,列表由cons单元格组成,其中
因此,对于列表
|
|
|
4
5
一
从这个定义中省略“引用”、“指针”等词的原因是要认识到这些是实现细节。如果你想,你可以建立一个
这个定义完全生活在Lisp定义和函数的世界中,甚至不停地考虑对象是作为值还是引用存储的;但是这些定义可以作为原始对象的替代品(不考虑可变性或其他特殊用途)。 |
|
|
5
3
我认为这里的其他答案虽然准确,但一点都不明确。
在传统的C++链表实现中,这两个字段(
lisp是动态类型的,因此cons单元格中的任何字段都可以
任何东西
(原子或参考)。您可以实现一个带有cons单元格的链接列表(这就是lisp列表的全部内容:带有
您甚至可以组合这些内容;例如
因此,cons单元比链表节点更一般;可以说,它更接近于“应用对”。所有标准列表处理功能(
所有这一切意味着,如果你愿意,你可以定义列表
向后的
用
|
|
|
kflak · 如何在公共lisp中将函数传递给宏 2 年前 |
|
|
Denes Cselovszki · 在宏定义中使用读取器宏字符 2 年前 |
|
|
7stud · 为什么是传单和封页? 2 年前 |
|
|
Vinn · DB中的HTML未注入hunchentoot路由 3 年前 |
|
|
ptb · Slime\Emacs comint在启动mpi进程时挂起 8 年前 |
|
|
Alexandru Popa · SBCL中奇怪的宏扩展错误 8 年前 |
|
|
MadPhysicist · 公共Lisp未定义分派字符 8 年前 |