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)