* boot-9.scm (iota): replaced by a tail recursive version.
authorMikael Djurfeldt <djurfeldt@nada.kth.se>
Sat, 5 Jun 1999 05:59:26 +0000 (05:59 +0000)
committerMikael Djurfeldt <djurfeldt@nada.kth.se>
Sat, 5 Jun 1999 05:59:26 +0000 (05:59 +0000)
(reverse-iota):  removed.

ice-9/boot-9.scm

index edf06ce..65eb43b 100644 (file)
 \f
 ;;; {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)))))
 
 \f
 ;;; {While}