summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--srfi/srfi-1.scm7
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?)))