From: Rob Biedenharn Date: 2007-12-15T00:44:49+09:00 Subject: Re: each with previous? On Dec 14, 2007, at 10:28 AM, Jari Williamsson wrote: > I'm going through lots of data where the result of the current is > affected by the previous element. So what I would need is an > "each_with_previous {|current, prev|}" > ...to make it a bit more readable. Is there any built-in Ruby method > that I might have overlooked, or should I build my own? > > Best regards, > > Jari Williamsson require 'enumerator' [first, second, third].each_slice(2) do |prev,curr| # do stuff end Except that you don't get a [nil,first] pair to start, you get [first,second]. You could also do something like: [first, second, third].inject(nil) do |prev, curr| # do stuff curr end And curr is assigned to prev in the next iteration and the first iteration gets [nil,first] -Rob Rob Biedenharn http://agileconsultingllc.com Rob@AgileConsultingLLC.com