假设我想从状态列表中删除一个步骤(元素)。多于一个参数用于删除谓词 - 如果
(defparameter *states* '((:top nil nil) (:subjects nil nil)))
;predicate
(defun equal-state? (step state)
(equal (car step) state))
如果我使用(delete-if #'equal-state? *states*)
那么如何在第二个参数(state
)可以传递给谓词?
编辑:我终于找到了一个类似的问题,但我倾向于保留它,因为问题的清晰。
NB。在这个例子中,你正在使用DELETE,它有权改变数据,但你的数据是常量(引用列表),不应该在便携式程序中修改。 – coredump