Sha256: b501cbb0db33850925716a70496a6010c415e5d0effb7e0ef848ecf92742a957

Contents?: true

Size: 477 Bytes

Versions: 6

Compression:

Stored size: 477 Bytes

Contents

require 'set'

class Set

  #
  def power_set
    if empty?
      Set[ self ]
    else
      any_value = [to_a.first]
      subsubs = (self - any_value).power_set
      subsubs + subsubs.map{ |subset| subset + any_value }
    end
  end
end

class Array

  #
  def power_set
    if empty?
      [self]
    else
      subset  = dup
      value   = [ subset.pop ]
      subsubs = subset.power_set
      subsubs.concat( subsubs.map{ |subset| subset + value } )
    end
  end

end

Version data entries

6 entries across 5 versions & 1 rubygems

Version Path
facets-2.9.2 lib/standard/facets/set.rb
facets-2.9.2 src/standard/facets/set.rb
facets-2.9.1 lib/standard/facets/set.rb
facets-2.9.0 lib/more/facets/set.rb
facets-2.9.0.pre.2 lib/more/facets/set.rb
facets-2.9.0.pre.1 lib/more/facets/set.rb