• Re: Detele repeated in a list

    From B. Pym@21:1/5 to B. Pym on Thu Aug 15 01:06:02 2024
    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))

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)