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.

View in manual

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)))