From: sawadatsuyoshi@... Date: 2014-02-23T09:14:18+00:00 Subject: [ruby-core:61030] [ruby-trunk - Feature #9557] [Open] Enumerator#next and Enumerator#peek with argument Issue #9557 has been reported by Tsuyoshi Sawada. ---------------------------------------- Feature #9557: Enumerator#next and Enumerator#peek with argument https://bugs.ruby-lang.org/issues/9557 * Author: Tsuyoshi Sawada * Status: Open * Priority: Normal * Assignee: * Category: * Target version: ---------------------------------------- It often happens that I want to move the current index of an enumerator by some arbitrary number `n`. `Enumerator#feed` takes the element as the argument, but that cannot be used if the enumerator has duplicate elements, or when I do not have information of a particular element to choose but just want to increment the index by some number. `Enumerator#next`, on the other hand, has a fixed value `1` to be incremented. It would be convenient if `Enumerator#next` takes an optional argument that represents the difference of the index to be incremented. The argument can be understood to be defaulted to `1` when absent. Also, I often want to look not necessarily the current position, but some position away. It would be good if `Enumerator#peek` takes an optional argument that represents the positional difference to be peeked. The argument can be understood to be defaulted to `0` when absent. enum = [0, 1, 2, 3, 4, 5, 6, 7, 8].to_enum enum.peek # => 0 enum.peek(0) # => 0 enum.peek(1) # => 1 enum.peek # => 0 enum.next # => 0 enum.next(1) # => 1 enum.next(2) # => 2 enum.peek # => 4 enum.peek(0) # => 4 enum.peek(1) # => 5 enum.peek # => 4 enum.next # => 4 enum.next(1) # => 5 enum.next(2) # => 6 peek # => 8 -- http://bugs.ruby-lang.org/