Method: Hamster::Set#flatten

Defined in:
lib/hamster/set.rb

#flattenSet

Recursively insert the contents of any nested ‘Set`s into this Set, and remove them.

Examples:

Hamster::Set[Hamster::Set[1, 2], Hamster::Set[3, 4]].flatten
# => Hamster::Set[1, 2, 3, 4]

Returns:



481
482
483
484
485
486
# File 'lib/hamster/set.rb', line 481

def flatten
  reduce(self.class.empty) do |set, item|
    next set.union(item.flatten) if item.is_a?(Set)
    set.add(item)
  end
end