mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-12 06:41:13 +02:00
(alist-copy): Change to a tail-recursive form.
This commit is contained in:
parent
b802470747
commit
aa0745cc05
1 changed files with 4 additions and 3 deletions
|
@ -699,10 +699,11 @@
|
||||||
(acons key datum alist))
|
(acons key datum alist))
|
||||||
|
|
||||||
(define (alist-copy alist)
|
(define (alist-copy alist)
|
||||||
(let lp ((a alist))
|
(let lp ((a alist)
|
||||||
|
(rl '()))
|
||||||
(if (null? a)
|
(if (null? a)
|
||||||
'()
|
(reverse! rl)
|
||||||
(acons (caar a) (cdar a) (lp (cdr a))))))
|
(lp (cdr a) (acons (caar a) (cdar a) rl)))))
|
||||||
|
|
||||||
(define (alist-delete key alist . rest)
|
(define (alist-delete key alist . rest)
|
||||||
(let ((k= (if (pair? rest) (car rest) equal?)))
|
(let ((k= (if (pair? rest) (car rest) equal?)))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue