From e69cd299ed2ab0c829ed52ec58807e7ccc8cd938 Mon Sep 17 00:00:00 2001 From: Mikael Djurfeldt Date: Sat, 5 Jun 1999 05:59:26 +0000 Subject: [PATCH] * boot-9.scm (iota): replaced by a tail recursive version. (reverse-iota): removed. --- ice-9/boot-9.scm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/ice-9/boot-9.scm b/ice-9/boot-9.scm index edf06ceac..65eb43b2b 100644 --- a/ice-9/boot-9.scm +++ b/ice-9/boot-9.scm @@ -2802,8 +2802,10 @@ ;;; {IOTA functions: generating lists of numbers} -(define (reverse-iota n) (if (> n 0) (cons (1- n) (reverse-iota (1- n))) '())) -(define (iota n) (reverse! (reverse-iota n))) +(define (iota n) + (let loop ((count (1- n)) (result '())) + (if (< count 0) result + (loop (1- count) (cons count result))))) ;;; {While}