# File lib/core/facets/enumerable/accumulate.rb, line 40 def accumulate(iterations=1) return self if iterations == 0 Functor.new do |op, *args| result = inject([]) { |a, x| a << x.send(op, *args) }.flatten.uniq result.accumulate(iterations - 1) end end