From: Matthias Georgi Date: 2005-11-26T04:12:27+09:00 Subject: Re: Faster way to pick the every other array member? Another one: module Enumerable def select_with_index index = 0 select { |item| res = yield item, index index += 1 res } end end [1,2,3,4,5,6,7].select_with_index {|n, i| i % 2 == 1 } I know this is basically the same, but you can see clearly what is happening.