From: Logan Capaldo Date: 2005-05-26T05:52:51+09:00 Subject: Re: loop over array with indices On 5/25/05, Pit Capitain wrote: > Logan Capaldo schrieb: > > > > You may want to write your own inject for this. > > > > def inject_with_index(*args) > > ... > > end > > > > Then you can call it less weirdly: > > > > ["a", "b", "c"].inject_with_index("") { |a, b, i| a << "#{b}@#{i}" } > > #=> "a@0b@1c@2" > > > > ["a", "b", "c"].inject_with_index do |a, i1, b, i2| > > [a + b, i1 + i2] > > end > > #=> ["abc", 3] > > Hi Logan, > > note you can have almost the same syntax with the normal inject: > > arr_iter.inject("") { |a, (b, i)| a << "#{b}@#{i}" } > # => "a@0b@1c@2" > > arr_iter.inject { |(a, i1), (b, i2)| [a + b, i1 + i2] } > # => ["abc", 3] > > Regards, > Pit > > Aha. That's really cool. I did not know that.