From f97ef6e462d9c1e4d6977e11700694c5ae71252a Mon Sep 17 00:00:00 2001 From: Kevin Ryde Date: Mon, 6 Dec 2004 00:08:38 +0000 Subject: [PATCH] (alist-delete): Change to a tail-recursive form. --- srfi/srfi-1.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/srfi/srfi-1.scm b/srfi/srfi-1.scm index fb92ed71c..72a4c53ab 100644 --- a/srfi/srfi-1.scm +++ b/srfi/srfi-1.scm @@ -942,12 +942,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?)))