如何创建一个新列表指向其他地方,Lisp

PCM*_*ore 3 lisp memory pointers list memory-address

标题是不言自明的.如何从另一个列表Y(相同的结构)构建一个新的列表X,但结果列表指向内存区域的其他位置,实际上是另一个对象?我尝试使用make-list :initial-element Y或附加到空列表,但我仍然得到相同的对象.谢谢!

Rai*_*wig 12

Common Lisp

使用COPY-LIST复制第一个列表级别.

使用COPY-TREE复制一个conses树,将在所有级别复制一个多级列表.

COPY-TREE和COPY-LIST都只会复制conses而不会复制其他内容.列表中的内容保持不变(意味着EQL,而不是EQ).

有关这些和相关的功能,请参阅Common Lisp HyperSpec的Conses Dictionary.