Thursday, April 22, 2010

Ruby: inject_to_a

Ruby: inject_to_a

set = (1..9).to_a


p set.inject([]) { |mem, item| mem << item * 3 if (item%2).zero?; mem }


module Enumerable
def inject_to_a
self.inject([]) { |mem, item| (res = yield(item)) ? mem << res : mem }
end
end


p set.inject_to_a { |item| item * 3 if (item%2).zero? }


grepを使う。これいい!
p set.grep(->x{ (x%2).zero? }) { |item| item * 3 }
each_with_objectというものある!
p a.each_with_object([]) { |i, mem| mem << i if (i%2).zero? }

No comments: