This surprised me:
C:\Documents and Settings\Alex>ruby -e “(4…1).each{|a| puts a}”
C:\Documents and Settings\Alex>ruby -e “(1…4).each{|a| puts a}”
1
2
3
4
C:\Documents and Settings\Alex>
Should it have done? I find it somewhat odd that ranges can only be
enumerated in one direction. Is there a reason for it?
On 9/29/06, Alex Y. [email protected] wrote:
Should it have done? I find it somewhat odd that ranges can only be
enumerated in one direction. Is there a reason for it?
There are many reason for it.
First, you need ranges with no elements.
Example:
(0 … x.size-1).each{|i| puts x[i]}
Now it works correctly with x=[]. It wouldn’t if (0…-1) was 0.
Another example:
x = [“a”, “b”, “c”, “d”]
p x[1…-2]
[“b”, “c”]
It wouldn’t work either if (1…-2) meant [1,0,-1,-2].