我在理解 nconc 的一些实验的结果时遇到了一些问题。
(setf x '(a b c))
(setf y '(1 2 3))
(nconc x y) ; => x = (A B C 1 2 3), y = (1 2 3)
根据我的阅读,nconc 将 x 的其余字段更改为指向 y。
(setf (nth 1 y) 10) ; => x = (A B C 1 10 3), y = (1 10 3)
到现在为止还挺好。
(setf y '(4 5 6)) ; => x = (A B C 1 10 3) y = (4 5 6)
为什么 x 仍然引用旧的 cons 单元格,或者换句话说,重新分配 y 不只是改变 y 地址处的数据?
在此先感谢迈克尔