You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求Common Lisp中操作cons的可破坏性与必破坏性函数列表

Common Lisp 操作Cons的破坏性函数列表

允许但不要求破坏性的函数

这类函数的语义允许对输入的cons结构进行破坏性修改,但具体实现可选择返回新结构而非修改原结构(通常在性能优化场景下会采用破坏性操作):

  • NCONC:拼接多个列表,允许修改最后一个输入列表的cdr来连接后续列表
  • NREVERSE:反转列表,允许修改原列表的cdr指针构建反转后的列表
  • NSUBST:破坏性版本的元素替换,允许修改原列表中的cons单元
  • NSUBSTIF:基于谓词的破坏性替换,允许修改原cons单元
  • NSUBST-NOT:反向谓词的破坏性替换函数
  • NSUBSTIF-NOT:基于反向谓词条件的破坏性替换函数
  • NUNION:集合并集的破坏性实现,允许修改输入列表结构
  • NINTERSECTION:集合交集的破坏性实现
  • NSET-DIFFERENCE:集合差集的破坏性实现
  • NSET-EXCLUSIVE-OR:集合对称差的破坏性实现

必然具有破坏性的操作

这类操作一定会修改输入的cons单元的car或cdr部分,调用后原cons结构会被直接改变:

  • RPLACA:直接修改cons单元的car字段
  • RPLACD:直接修改cons单元的cdr字段
  • POP:宏,通过SETF修改列表的cdr,移除并返回第一个元素
  • PUSH:宏,通过SETF修改列表结构,将元素添加到列表头部
  • SETF操作CAR/CDR:例如(setf (car my-cons) new-val)或(setf (cdr my-cons) new-list),底层对应RPLACA和RPLACD

内容的提问来源于stack exchange,提问作者Robert Dodier

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 13:22:08