Sujet : Re: Detele repeated in a list
De : Nobody447095 (at) *nospam* here-nor-there.org (B. Pym)
Groupes : comp.lang.lispDate : 15. Aug 2024, 03:06:02
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <v9jk9o$lrgv$1@dont-email.me>
References : 1 2
User-Agent : XanaNews/1.18.1.6
B. Pym wrote:
B. Pym wrote:
Pascal Costanza wrote:
(defun rem-duplicates (list)
(loop for (first . rest) on (append list list)
unless (member first (reverse rest) :test #'equal)
collect first))
Gauche Scheme
(define (rem-dups lst)
(fold
(lambda (x accum) (if (member x accum) accum (cons x accum)))
'()
lst))
(rem-dups '(0 2 3 4 (8 7) 3 2 0 (8 7)))
===>
(4 3 2 0 (8 7))
Actual result:
((8 7) 4 3 2 0)
newLISP
(define (rem-dups lst)
;; Using "apply" for "reduce" or "fold".
(apply
(fn (accum x) (if (member x accum) accum (push x accum -1)))
(cons '() lst)
2))
(rem-dups '(0 2 3 4 (8 7) 3 2 0 (8 7)))
(0 2 3 4 (8 7))