List 如何在emacs lisp中创建字符串列表的深度副本?

List 如何在emacs lisp中创建字符串列表的深度副本?,list,emacs,List,Emacs,我需要制作一个字符串列表的深度副本。结果应该是另一个字符串列表,这些字符串与第一个列表中的字符串不同,但长度相同,由相同的字符组成 但是,标准功能,如复制列表,复制序列,复制树似乎都是浅拷贝,即它们在两个列表之间共享字符串。您需要创新: (mapcar #'copy-sequence list-of-strings) 在我的例子中,我需要相同的元素,但在列表的末尾临时添加了一个新元素,(复制顺序)为此工作,列表中除一个元素外的所有元素都是浅副本,最后一个是新实体。原始列表没有被修改。为什么?根

我需要制作一个字符串列表的深度副本。结果应该是另一个字符串列表,这些字符串与第一个列表中的字符串不同,但长度相同,由相同的字符组成

但是,标准功能,如
复制列表
复制序列
复制树
似乎都是浅拷贝,即它们在两个列表之间共享字符串。

您需要创新:

(mapcar #'copy-sequence list-of-strings)

在我的例子中,我需要相同的元素,但在列表的末尾临时添加了一个新元素,
(复制顺序)
为此工作,列表中除一个元素外的所有元素都是浅副本,最后一个是新实体。原始列表没有被修改。

为什么?根据我的经验,将字符串视为只读对象(因此不需要复制)几乎总是比将字符串视为只读对象要好得多