Cha*_*ers 3 common-lisp practical-common-lisp
我正在阅读《实践通用Lisp》,对Lisp的COPY-TREE功能有疑问。
这本书给出了调用的例子
(copy-tree '( '(1 2) '(3 4) '(5 6)))
Run Code Online (Sandbox Code Playgroud)
在解释了它之后,本书做出了如下声明:
如果原始文件中的cons单元引用了原子值,则副本中相应的cons单元将引用相同的值。因此,原始树和COPY-TREE生成的副本共同引用的唯一对象是数字5、6和符号NIL。
但这对我来说没有意义。我认为所有原子都将在原始和新原子之间共享。因此,我希望在原始副本和副本之间共享1、2、3、4、5、6和NIL,并且唯一的“新对象”将是所有CONS单元。
哪一个是正确的,为什么?
谢谢。
小智 5
我检查了网络版本,pdf版本和精装本。如前所述,前两个是错误的。精装本说明(粗体是我的):
如果原始文件中的cons单元引用了原子值,则副本中相应的cons单元将引用相同的值。因此,原始树和COPY-TREE生成的副本共同引用的唯一对象是数字1-6和符号NIL。
因此,精装书是正确的。
| 归档时间: |
|
| 查看次数: |
452 次 |
| 最近记录: |