bearophile wrote:
D2 supports the interval syntax in the foreach: foreach (i; 1..1000) {...}Such intervals are useful in a very large number of situations. So, with the new Range support, it may be useful to allow the interval syntax to be used in other contexts as well. So x..y may become a first-class lazy interval from x to y-1, that can be passed to functions too, etc, and not just used into foreach (the compiler can recognize it, and often optimize it away in many situations, replacing it with a normal for() loop).
How do you specify a uint range that includes uint.max? (This is a general problem with "[)" ranges).
Optional possibilities: 1) x..y..s where s is a step/stride, so you can define odd numbers, etc. 1..10..3 ==> 1 4 7 10..1..-2 ==> 10 8 6 4 2 1..5..1 ==> 1 2 3 4 I don't like this syntax much, but I think it's acceptable.
This is a perfect example of what Andrei recently posted: proposal of a language change for a pathetically limited special case. Your stride is not powerful enough to be worthwhile.
