我正在通过阅读其他人来学习Elisp'码。然后我发现人们同时使用delete
和remove
从序列中删除元素。我检查了文档和remove
的代码,它只是delete
的包装器,当序列是列表时,执行copy-sequence
。
复制列表来执行delete
是否真的很重要?或者我可以使用delete
这是一个C
命令,我认为它应该更有效率。
答案 0 :(得分:4)
remove
返回
删除所有elt的seq副本。
而delete
通过副作用删除[s]任何出现的elt作为seq。
的成员
所以它修改了原始序列。 (除非第一个元素是命中,所以请查阅 C-h f 删除以获取完整的详细信息。)