matju considers: > 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? While you have pretty good idea here, don't forget that .succ is has been chosen so that you can go over strings and String.+ wouldn't be so useful here. Actually I have to say I haven't had ever need to go over strings, but if I'd be coding excel someday I might have a need, as the columns in it are named like A,B,..Z,AA,AB,... And that's exactly how the curernt implementation works. There has been some discussions though. I'd say skipping ranges would be good thing to have anyway. And if I had to trade, I'd lose .succing. > Oh, and #skip could be called STEP like in BASIC (just lose the In any event, we shouldn't forget 1.step(10,2) { |i| print i, " " } #=> 1 3 5 7 9 just as http://dev.rubycentral.com/ref/ref_c_integer.html#step says. And there we have the step we need :). And works for negative skipping..uh..stepping too. - Aleksi