Function: seq-uniq
seq-uniq is a byte-compiled function defined in seq.el.gz.
Signature
(seq-uniq SEQUENCE &optional TESTFN)
Documentation
Return a list of the elements of SEQUENCE with duplicates removed.
TESTFN is used to compare elements, and defaults to equal.
This does not modify SEQUENCE.
Other relevant functions are documented in the sequence group.
Shortdoc
;; sequence
(seq-uniq '(a b d b a c))
=> (a b d c)
Aliases
eshell-uniquify-list (obsolete since 28.1)
eshell-uniqify-list (obsolete since 28.1)
artist-uniq (obsolete since 28.1)
rng-uniquify-equal (obsolete since 28.1)
gnus-delete-duplicates (obsolete since 29.1)
ps-remove-duplicates (obsolete since 30.1)
ibuffer-remove-duplicates (obsolete since 29.1)
idlwave-uniquify (obsolete since 28.1)
Implementations
(seq-uniq (SEQUENCE list) &optional TESTFN) in `seq.el'.
Undocumented
(seq-uniq SEQUENCE &optional TESTFN) in `seq.el'.
Undocumented
Source Code
;; Defined in /usr/src/emacs/lisp/emacs-lisp/seq.el.gz
;;;###autoload
(cl-defgeneric seq-uniq (sequence &optional testfn)
"Return a list of the elements of SEQUENCE with duplicates removed.
TESTFN is used to compare elements, and defaults to `equal'.
This does not modify SEQUENCE."
(let ((result '()))
(seq-doseq (elt sequence)
(unless (seq-contains-p result elt testfn)
(setq result (cons elt result))))
(nreverse result)))