1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-02 21:10:27 +02:00

(delete-duplicates): Change to a tail-recursive form.

This commit is contained in:
Kevin Ryde 2004-12-05 22:49:54 +00:00
parent 95bc9d7a2e
commit 6b0fbcf5e5

View file

@ -924,10 +924,10 @@
(define (delete-duplicates list . rest)
(let ((l= (if (pair? rest) (car rest) equal?)))
(let lp ((list list))
(let lp ((list list) (rl '()))
(if (null? list)
'()
(cons (car list) (lp (delete (car list) (cdr list) l=)))))))
(reverse! rl)
(lp (delete (car list) (cdr list) l=) (cons (car list) rl))))))
(define (delete-duplicates! list . rest)
(let ((l= (if (pair? rest) (car rest) equal?)))