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:
parent
41ab236c76
commit
49ae1e250f
1 changed files with 4 additions and 4 deletions
|
@ -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?)))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue