correction to my reply. > this is just one of what i had been seeking in vain for !! while i was in my regeneration cycle, i found that this is not the ideal behavior for me. > > irb(main):003:0> require 'enumerator' > > => true > > irb(main):004:0> [1,2,3,4,5,6].each_cons(2) {|x| p x } > > [1, 2] > > [2, 3] > > [3, 4] > > [4, 5] > > [5, 6] > > => nil > > irb(main):005:0> [1,2,3,4,5,6].each_cons(3) {|x| p x } > > [1, 2, 3] > > [2, 3, 4] > > [3, 4, 5] > > [4, 5, 6] what i am expecting is as below. [1,2,3.4.5.6].sliding_each(2) {|x| p x} [nil,1] [1,2] [2,3] [3,4] [4,5] [5,6] [6,nil] on the other hand, it is easy by like this. [ nil, enumeratee, nil ].flatten.each_cons(2) { |x| p x } q2hdp://void/3d/universe/milky-way-galaxy/orion-arm/sol-solar-system/ 3rd-planet/fareast/jp/tky/shigetomi.takuhiko.5618