RosettaCodeData/Task/Ordered-partitions/Ruby/ordered-partitions-1.rb

7 lines
163 B
Ruby
Raw Permalink Normal View History

2023-07-01 11:58:00 -04:00
def partition(mask)
return [[]] if mask.empty?
[*1..mask.inject(:+)].permutation.map {|perm|
mask.map {|num_elts| perm.shift(num_elts).sort }
}.uniq
end