Chinaunix

标题: lisp中tree的问题,谢谢 [打印本页]

作者: xdshting    时间: 2009-07-05 23:22
标题: 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,但是后面有一段描
述我没看明白,说原树和拷贝共享一些东西,明明是完全拷贝,怎么又会共享一
些东西
我贴了一幅图,红色的部分我看不懂,请大虾务必帮忙

tree.GIF (19.72 KB, 下载次数: 70)

tree.GIF

作者: emacsnw    时间: 2009-07-06 12:02
原帖由 xdshting 于 2009-7-5 07:22 发表
正在看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  ...


atomic value值得就是non-cons values吧,比如symbols (包括nil), numbers, etc.

在这里2,3等数字以及nil也是object,所以是被共享的。比如一个空的list,它的car和cdr都指向(同一个)nil object.
作者: chenzengjie    时间: 2009-07-09 14:38
原子这个词在计算机科学里有很多地方都用到过, 意思是不能再细分, 没有结构, 处理时只能当一个整体。

相当于C里的基本类型。 复合类型就由基本类型按一定的结构搭建。

对比一下字符串类型和符号类型(两者很像)。 前者有结构,后者没有。 字符串能索引, 能取子串, 符号只能当一个整体处理。

[ 本帖最后由 chenzengjie 于 2009-7-9 14:40 编辑 ]
作者: xdshting    时间: 2009-07-10 11:33
原帖由 emacsnw 于 2009-7-6 12:02 发表


atomic value值得就是non-cons values吧,比如symbols (包括nil), numbers, etc.

在这里2,3等数字以及nil也是object,所以是被共享的。比如一个空的list,它的car和cdr都指向(同一个)nil object.

很久没来了,谢谢您的回复
您的意思是说,他们不仅共享5.6.nil,他们还共享1,2,3,4,nil,等是吗
但截图中,我划红线的部分很清楚的说,他们唯一共享的部分是,5,6,nil
还是我理解错了作者的意思

[ 本帖最后由 xdshting 于 2009-7-10 11:36 编辑 ]
作者: xdshting    时间: 2009-07-10 11:34
原帖由 chenzengjie 于 2009-7-9 14:38 发表
原子这个词在计算机科学里有很多地方都用到过, 意思是不能再细分, 没有结构, 处理时只能当一个整体。

相当于C里的基本类型。 复合类型就由基本类型按一定的结构搭建。

对比一下字符串类型和符号类型( ...

谢谢,很清楚
作者: win_hate    时间: 2009-07-10 17:32
原帖由 xdshting 于 2009-7-10 11:33 发表

很久没来了,谢谢您的回复
您的意思是说,他们不仅共享5.6.nil,他们还共享1,2,3,4,nil,等是吗
但截图中,我划红线的部分很清楚的说,他们唯一共享的部分是,5,6,nil
还是我理解错了作者的意思


我觉得是书本没把意思表达好。共享的应该是数字和 NIL。

你看书时有运行它的代码吗?如果有,可以把一棵树的某部分修改一下,然后观察另一棵树是否发生变化。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2