Documentation
Returns PLIST with keyword arguments from KEYS removed.
Source
(defun sans (plist &rest keys)
"Returns PLIST with keyword arguments from KEYS removed."
;; From Usenet posting <3247672165664225@naggum.no> by Erik
;; Naggum.
(let ((sans ()))
(loop
(let ((tail (nth-value 2 (get-properties plist keys))))
;; this is how it ends
(unless tail
(return (nreconc sans plist)))
;; copy all the unmatched keys
(loop until (eq plist tail) do
(push (pop plist) sans)
(push (pop plist) sans))
;; skip the matched key
(setq plist (cddr plist))))))
Source Context