From: Sean O'Halpin Date: 2005-09-16T10:20:39+09:00 Subject: Re: Math: sum and faculty > sum = enum.accumulate(0, :+) {|x| f(x)} How about module Enumerable def accumulate(initial, method, &block) if not block_given? block = proc {|x| x} end inject(initial) {|accumulator, value| # # apply block to input value # accumulator.send(method, block.call(value)) } end end It's worth getting to know inject however. Sean