From f555b5008301b55044f844db4dc171b758dad156 Mon Sep 17 00:00:00 2001 From: Alex Shinn Date: Sun, 2 Jan 2011 23:12:46 +0900 Subject: [PATCH] fixing bug in length+ --- lib/srfi/1/predicates.scm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/srfi/1/predicates.scm b/lib/srfi/1/predicates.scm index be84e085..942bfdab 100644 --- a/lib/srfi/1/predicates.scm +++ b/lib/srfi/1/predicates.scm @@ -35,8 +35,10 @@ (define (length+ x) (if (not (pair? x)) 0 - (let lp ((hare (cdr x)) (tortoise x) (res 0)) + (let lp ((hare (cdr x)) (tortoise x) (res 1)) (and (not (eq? hare tortoise)) (if (pair? hare) - (lp (cddr hare) (cdr tortoise) (+ res 1)) + (if (not (pair? (cdr hare))) + (+ res 1) + (lp (cddr hare) (cdr tortoise) (+ res 2))) res)))))