标题是不言自明的。我如何从另一个列表 Y(相同结构)构建一个新列表 X,但生成的列表指向内存区域中的其他地方,实际上是另一个对象?我尝试使用 make-list :initial-element Y
或附加到一个空列表,但我仍然得到相同的对象。谢谢!
最佳答案
Common Lisp
使用COPY-LIST复制第一层列表。
使用COPY-TREE复制一棵conses树,多级列表将在所有级别上复制。
COPY-TREE 和 COPY-LIST 都只会复制 conses 而不会复制其他内容。列表中的内容保持不变(意思是 EQL,而不是 EQ)。
参见 Common Lisp HyperSpec 的 The Conses Dictionary用于这些和相关功能。
关于list - 如何制作一个新列表指向其他地方,Lisp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1734566/