From: Yui NARUSE Date: 2011-10-04T16:46:44+09:00 Subject: [ruby-core:39916] [Ruby 1.9 - Feature #5389] New method Enumerator#iterate Issue #5389 has been updated by Yui NARUSE. Enumerator#next is not enough? ---------------------------------------- Feature #5389: New method Enumerator#iterate http://redmine.ruby-lang.org/issues/5389 Author: Joey Zhou Status: Open Priority: Normal Assignee: Category: Target version: If we want to iterate over the elements of a enumerable object with *multiple* blocks, we can use the Enumerator class. A method 'iterate' is required, we can write it in Ruby: class Enumerator def iterate yield_value = self.next return_value = yield yield_value self.feed return_value self end end Well, here is an example: array = (1..10).to_a enum = array.map! loop do enum.iterate {|n| n + 10 } enum.iterate {|n| n * 2 } enum.iterate {|n| -n } end p array # => [11, 4, -3, 14, 10, -6, 17, 16, -9, 20] We want to map an array: the 1st element use blk1, the 2nd use blk2, the 3rd use blk3... I think this Enumerator#iterate method is sometimes useful, so would you please introduce it into the language core? -- http://redmine.ruby-lang.org