Module: Enumerable
- Defined in:
- lib/polyrex.rb
Instance Method Summary collapse
Instance Method Details
#repeated_permutation(size, &blk) ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/polyrex.rb', line 19 def repeated_permutation(size, &blk) f = proc do |memo, &blk| if memo.size == size blk.call memo else self.each do |i| f.call memo + [i], &blk end end end if block_given? f.call [], &blk else Enumerator.new(f, :call, []) end end |