1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-03 13:20:26 +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) (define (delete-duplicates list . rest)
(let ((l= (if (pair? rest) (car rest) equal?))) (let ((l= (if (pair? rest) (car rest) equal?)))
(let lp ((list list)) (let lp ((list list) (rl '()))
(if (null? list) (if (null? list)
'() (reverse! rl)
(cons (car list) (lp (delete (car list) (cdr list) l=))))))) (lp (delete (car list) (cdr list) l=) (cons (car list) rl))))))
(define (delete-duplicates! list . rest) (define (delete-duplicates! list . rest)
(let ((l= (if (pair? rest) (car rest) equal?))) (let ((l= (if (pair? rest) (car rest) equal?)))