Function: set:remove
set:remove is a byte-compiled function defined in set.el.
Signature
(set:remove ELT SET)
Documentation
Remove element ELT from SET and return new set.
Assume SET is a valid set. Uses set:equal-op for comparison. Use (setq set (set:remove elt set)) to assure set is always properly modified.
Aliases
Source Code
;; Defined in ~/.emacs.d/elpa/hyperbole-20260414.325/set.el
(defun set:remove (elt set)
"Remove element ELT from SET and return new set.
Assume SET is a valid set. Uses `set:equal-op' for comparison.
Use (setq set (set:remove elt set)) to assure set is always properly modified."
(pcase set:equal-op
('equal (delete elt set))
((or 'eq 'eql) (delq elt set))
(_ (let ((rest (set:member elt set))
(rtn set))
(when rest
(cond ((= (length rtn) 1) (setq rtn nil))
((= (length rest) 1)
(setcdr (nthcdr (- (length rtn) 2) rtn) nil))
(t (setcar rest (cadr rest))
(setcdr rest (cddr rest)))))
rtn))))