On 8/8/07, Jano Svitok <jan.svitok / gmail.com> wrote:
> On 8/8/07, FireAphis <FireAphis / gmail.com> wrote:
> > Hello,
> >
> > I need to iterate through a list and handle two elements on every
> > iteration. That is I'd like to do something like
> >
> > [1,2,3,4,5].each { |x, y| puts x.to_s + y.to_s }
> >
> > 12
> > 23
> > 34
> > 45
> >
> > This code doesn't work off course.
> > I can iterate using indices
> >
> > 0.upto(list.size-1) { |i| puts list[i] + list[i+1] }
> >
> > But it looks ugly to me. Do you know any elegant tricks that don't use
> > list indices?
> >
> > Thanks
> > FireAphis
>
> Enumerable#each_slice(n) {|...| ...}
>

Sorry Enumerable#each_cons(n) { }

you might need to require 'enumerable' though.