Interval.st
changeset 8940 b05bb4dd96b3
parent 8394 da194de43766
child 9411 5e2a6ab94c0a
--- a/Interval.st	Tue Aug 16 17:55:01 2005 +0200
+++ b/Interval.st	Tue Aug 16 18:50:00 2005 +0200
@@ -13,10 +13,10 @@
 "{ Package: 'stx:libbasic' }"
 
 ReadOnlySequenceableCollection subclass:#Interval
-        instanceVariableNames:'start stop step'
-        classVariableNames:''
-        poolDictionaries:''
-        category:'Collections-Sequenceable'
+	instanceVariableNames:'start stop step'
+	classVariableNames:''
+	poolDictionaries:''
+	category:'Collections-Sequenceable'
 !
 
 !Interval class methodsFor:'documentation'!
@@ -255,14 +255,21 @@
 
     |newCollection|
 
-    newCollection := self species new:(self size).
-    self do:[:each |
-        newCollection add:(aBlock value:each)
+    (start == 1 and:[step == 1]) ifTrue:[
+        newCollection := Array new:(self size).
+        self do:[:each |
+            newCollection at:each put:(aBlock value:each)
+        ].
+    ] ifFalse:[
+        newCollection := self species new:(self size).
+        self do:[:each |
+            newCollection add:(aBlock value:each)
+        ].
     ].
     ^ newCollection
 
     "
-     (1 to:20) collect:[:i | i*i]
+     (1 to:20) collect:[:i | i*i]  
     "
 !
 
@@ -547,5 +554,5 @@
 !Interval class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/Interval.st,v 1.41 2004-06-11 18:10:32 stefan Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/Interval.st,v 1.42 2005-08-16 16:50:00 cg Exp $'
 ! !