我正在审查一些包含对conses的破坏性操作的代码,我希望找到对conses具有破坏性的所有Common Lisp函数的列表。我在 Common Lisp Hyper-Spec 本身中没有看到这样的列表,并且我无法通过网络搜索找到一个列表。
这可能是 CLHS 在“Conses Dictionary”标题下列出的函数的一些子集,但我想如果我自己浏览它,我可能会错过一些东西,而且可能还有其他函数可能会修改CLHS 其他地方的反对论点。
我最感兴趣的是允许具有破坏性但不是必需的功能。例如,这包括 NCONC 等内容,但不包括 RPLACA。我想如果 conses 上有第二个需要具有破坏性的函数列表,那也会很有趣且有用。
将其发布为社区维基:
n
一些功能:nreverse
,nsubstitute
…“n”表示“非consing”,它不需要分配任何新的cons单元,它可能会重用原始序列。sort
、stable-sort
(之前使用 copy-list
或 copy-seq
)delete[-*]
功能(remove
不具有破坏性)pop
replace
vector-push
可以具有破坏性