lisp中tree的问题,谢谢
正在看practical common lisp,十三章中,第二节tree
1,Tree structure is traversed by following both CAR and CDR references
for as long as they point to other cons cells. The values in a tree are
thus the atomic—non-cons-cell–values referenced by either the CARs or
the CDRs of the cons cells in the tree structure.
在这段中第二句话没看明白,后面很多地方都引用到atomic value,怎么理解atomic value阿
2,书中很清楚地说copy-tree拷贝整棵树的每一个cons cell,但是后面有一段描
述我没看明白,说原树和拷贝共享一些东西,明明是完全拷贝,怎么又会共享一
些东西
我贴了一幅图,红色的部分我看不懂,请大虾务必帮忙
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
我觉得是书本没把意思表达好。共享的应该是数字和 NIL。
你看书时有运行它的代码吗?如果有,可以把一棵树的某部分修改一下,然后观察另一棵树是否发生变化。
谢谢,很清楚
很久没来了,谢谢您的回复
您的意思是说,他们不仅共享5.6.nil,他们还共享1,2,3,4,nil,等是吗
但截图中,我划红线的部分很清楚的说,他们唯一共享的部分是,5,6,nil
还是我理解错了作者的意思
[ 本帖最后由 xdshting 于 2009-7-10 11:36 编辑 ]
原子这个词在计算机科学里有很多地方都用到过, 意思是不能再细分, 没有结构, 处理时只能当一个整体。
相当于C里的基本类型。 复合类型就由基本类型按一定的结构搭建。
对比一下字符串类型和符号类型(两者很像)。 前者有结构,后者没有。 字符串能索引, 能取子串, 符号只能当一个整体处理。
[ 本帖最后由 chenzengjie 于 2009-7-9 14:40 编辑 ]
atomic value值得就是non-cons values吧,比如symbols (包括nil), numbers, etc.
在这里2,3等数字以及nil也是object,所以是被共享的。比如一个空的list,它的car和cdr都指向(同一个)nil object.