Feature #10498
Updated by nobu (Nobuyoshi Nakada) about 10 years ago
# Problem Teaching Ruby, we always end up with that type of construct ```ruby i `i = 0 loop do i += 1 # do something with i.... raise StopIteration if i ... end ``` ` # Solution What I propose with this patch is making `loop` yield the iteration count: ```ruby loop `loop do |i| # do something with i.... raise StopIteration if i ... end ``` ` `i` starts at 0 and stops at `FIXNUM_MAX` (there's no `Float::Infinity` equivalent for integers). # Alternate solution `Integer#times` could work if we had an `<Integer's infinity>` object, so we would just do `<Integer's Infinity>.times { |i| ... }`. Also, this is the very first patch I submit to Ruby, I might have done something horrible, feel free to tell me :-)