In IOTA, multiply the index by the increment, rather than adding
authorTaylor R. Campbell <net/mumble/campbell>
Sat, 30 Aug 2008 19:33:25 +0000 (19:33 +0000)
committerTaylor R. Campbell <net/mumble/campbell>
Sat, 30 Aug 2008 19:33:25 +0000 (19:33 +0000)
adding the increment repeatedly.

v7/src/runtime/list.scm

index 179398969190a6b3551d9eb3789205c04492b97c..fda2e9a2af1397e0a9df74eff707d909fd0b4a26 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Id: list.scm,v 14.58 2008/02/10 06:14:10 cph Exp $
+$Id: list.scm,v 14.59 2008/08/30 19:33:25 riastradh Exp $
 
 Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
     1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
@@ -148,10 +148,7 @@ USA.
             (begin
               (guarantee-number step 'IOTA)
               step))))
-    (let loop ((count count) (value start))
-      (if (fix:> count 0)
-         (cons value (loop (fix:- count 1) (+ value step)))
-         '()))))
+    (make-initialized-list count (lambda (index) (+ start (* index step))))))
 
 (define (list? object)
   (let loop ((l1 object) (l2 object))