1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-30 04:10:54 -08:00

(delete-dups): A better implementation from Karl Heuer <kwzh@gnu.org>.

This commit is contained in:
Eli Zaretskii 2004-02-16 19:40:07 +00:00
parent 279dffd676
commit 1f3e4f92e7

View file

@ -210,18 +210,14 @@ If N is bigger than the length of X, return X."
x))))
(defun delete-dups (list)
"Destructively return LIST, with `equal' duplicates removed.
LIST must be a proper list. The value of LIST after a call to
this function is undefined. Use \(setq LIST (delete-dups LIST))
if you want to store the return value in LIST. Of several
`equal' occurrences of an element in LIST, the last one is kept."
(while (member (car list) (cdr list))
(pop list))
"Destructively remove `equal' duplicates from LIST.
Store the result in LIST and return it. LIST must be a proper list.
Of several `equal' occurrences of an element in LIST, the first
one is kept."
(let ((tail list))
(while tail
(while (member (cadr tail) (cddr tail))
(setcdr tail (cddr tail)))
(pop tail)))
(setcdr tail (delete (car tail) (cdr tail)))
(setq tail (cdr tail))))
list)
(defun number-sequence (from &optional to inc)