diff --git a/srfi/srfi-1.scm b/srfi/srfi-1.scm index 61aff101a..ff9be8e2f 100644 --- a/srfi/srfi-1.scm +++ b/srfi/srfi-1.scm @@ -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?)))