1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-10 14:00:21 +02:00

(alist-delete): Change to a tail-recursive form.

This commit is contained in:
Kevin Ryde 2004-12-06 00:09:14 +00:00
parent 41ab236c76
commit 49ae1e250f

View file

@ -707,12 +707,12 @@
(define (alist-delete key alist . rest)
(let ((k= (if (pair? rest) (car rest) equal?)))
(let lp ((a alist))
(let lp ((a alist) (rl '()))
(if (null? a)
'()
(reverse! rl)
(if (k= key (caar a))
(lp (cdr a))
(cons (car a) (lp (cdr a))))))))
(lp (cdr a) rl)
(lp (cdr a) (cons (car a) rl)))))))
(define (alist-delete! key alist . rest)
(let ((k= (if (pair? rest) (car rest) equal?)))