如何在Emacs Lisp中制作字符串列表的深拷贝?

3
我需要制作一个字符串列表的深拷贝。结果应该是另一个字符串列表,其中的字符串与第一个列表中的不同,但长度相同且由相同的字符组成。
然而,标准函数(如copy-list、copy-sequence、copy-tree)似乎都只进行浅拷贝,也就是它们在两个列表之间共享字符串。

2
为什么?根据我的经验,将字符串视为只读对象(因此不需要复制)几乎总是更好的选择。 - Stefan
我正在给同一幅ASCII图片应用不同的着色。 - Srv19
2个回答

5

你需要创新:

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

1
在我的情况下,我需要相同的元素,但是临时将一个新元素添加到列表末尾,(copy-sequence) 对此起了作用,除了列表中的一个元素外,所有元素都是浅复制,最后一个元素是一个新实体。原始列表没有被修改。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接