Common lisp 公共lisp:通过setq和assoc删除列表中的一对

Common lisp 公共lisp:通过setq和assoc删除列表中的一对,common-lisp,setf,Common Lisp,Setf,我在一本旧的通用lisp书中找到了这段代码,并在lispworks和clozure cl中进行了尝试。但他们都无法运行这段代码。此代码用于删除该对:(author1.john) 感谢您的时间函数(SETF ASSOC)未在ANSI Common Lisp中定义,且无法移植定义(ANSI CL规范不允许为CL包中的符号编写SETF函数) 您需要以其他方式删除相应的对。您不能就地操作列表,但可以在不使用指定键的情况下以功能方式获取新列表,并重新分配变量: (setf q (remove 'autho

我在一本旧的通用lisp书中找到了这段代码,并在lispworks和clozure cl中进行了尝试。但他们都无法运行这段代码。此代码用于删除该对:
(author1.john)

感谢您的时间

函数
(SETF ASSOC)
未在ANSI Common Lisp中定义,且无法移植定义(ANSI CL规范不允许为CL包中的符号编写SETF函数)


您需要以其他方式删除相应的对。

您不能就地操作列表,但可以在不使用指定键的情况下以功能方式获取新列表,并重新分配变量:

(setf q (remove 'author1 q :key #'car))
(setf q (remove 'author1 q :key #'car))