Angenommen, ich möchte einen Schritt (Element) aus der Liste der Zustände löschen.Mehr als ein Argument für Prädikat in delete-if
(defparameter *states* '((:top nil nil) (:subjects nil nil)))
;predicate
(defun equal-state? (step state)
(equal (car step) state))
Wenn ich (delete-if #'equal-state? *states*)
dann, wie das zweite Argument (state
) auf Prädikat übergeben werden?
bearbeitet: Ich habe endlich eine ähnliche Frage gefunden, aber ich bin geneigt, es wegen der Klarheit in der Frage zu behalten.
NB:
Man kann auch
remove
/delete
verwenden. In diesem Beispiel verwenden Sie DELETE, das berechtigt ist, Daten zu mutieren, aber Ihre Daten sind konstant (Liste in Anführungszeichen) und sollten in portablen Programmen nicht geändert werden. – coredump