> Or at least it shouldn't look like an existing range with a number and
> comma prefixed to it. The 2..18 looks like a range to me. I like the idea,
> but not the proposed syntax. Something like (0..18, 2) would be much
> cleaner visually (at least for me), and you could think of the 2nd
> position as a parameter that normally defaults to 1.

But it wouldn't be compatible, and it wouldn't be simple. Try:

(0..18).skip(2)



maybe Range can be changed. currently it has:

start
end
closedness (start or both)

it could have:

start
end
closedness (start, end, both, neither)
skip (default: 1)

Trivially, (0..18) creates a range with a skip of 1; calling the skip
method with n creates a new range whose skip has been changed to n (or
multiplied by n ?)

skip(2) makes range call .succ.succ instead of .succ; but with skip(1000)
this may be an issue; so why not use .+ instead of .succ ? what about
negative skips, and how should they be handled?



Alternatively, a separate StepRange (< Range ?) could be created, if one
wishes not to mangle the current Range.



Oh, and #skip could be called STEP like in BASIC (just lose the
uppercases)... after all, we got downTo from PASCAL... (through SmallTalk
or not)

matju