[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Guile-commits] 01/01: Don't recurse in drop-right
From: |
Andy Wingo |
Subject: |
[Guile-commits] 01/01: Don't recurse in drop-right |
Date: |
Tue, 12 Jul 2016 13:54:09 +0000 (UTC) |
wingo pushed a commit to branch stable-2.0
in repository guile.
commit af3796b11cebb1ec50bcf6056d604983f1f76b97
Author: Andy Wingo <address@hidden>
Date: Tue Jul 12 15:53:40 2016 +0200
Don't recurse in drop-right
* module/srfi/srfi-1.scm (drop-right): Don't recurse, sadly, as we have
a stack limit.
---
module/srfi/srfi-1.scm | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/module/srfi/srfi-1.scm b/module/srfi/srfi-1.scm
index 670a3ae..356e295 100644
--- a/module/srfi/srfi-1.scm
+++ b/module/srfi/srfi-1.scm
@@ -374,10 +374,10 @@ end-of-list checking in contexts where dotted lists are
allowed."
lag)))
(define (drop-right lis k)
- (let recur ((lag lis) (lead (drop lis k)))
+ (let lp ((lag lis) (lead (drop lis k)) (result '()))
(if (pair? lead)
- (cons (car lag) (recur (cdr lag) (cdr lead)))
- '())))
+ (lp (cdr lag) (cdr lead) (cons (car lag) result))
+ (reverse result))))
(define (take! lst i)
"Linear-update variant of `take'."