diff options
-rw-r--r-- | srfi/srfi-1.scm | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/srfi/srfi-1.scm b/srfi/srfi-1.scm index 2ebe705f5..96042d6e6 100644 --- a/srfi/srfi-1.scm +++ b/srfi/srfi-1.scm @@ -699,10 +699,11 @@ (acons key datum alist)) (define (alist-copy alist) - (let lp ((a alist)) + (let lp ((a alist) + (rl '())) (if (null? a) - '() - (acons (caar a) (cdar a) (lp (cdr a)))))) + (reverse! rl) + (lp (cdr a) (acons (caar a) (cdar a) rl))))) (define (alist-delete key alist . rest) (let ((k= (if (pair? rest) (car rest) equal?))) |