def select
      return enum_for(:select) unless block_given?
      return reduce(self.class.empty) { |tuple, element| yield(element) ? tuple.add(element) : tuple }
    end
def select
      return enum_for(:select) unless block_given?
      return reduce(self.class.empty) { |tuple, element| yield(element) ? tuple.add(element) : tuple }
    end
Return a new `Tuple` containing all elements for which the given block returns
 true.

 @example
   Erlang::Tuple["Bird", "Cow", "Elephant"].select { |e| e.size >= 4 }
   # => Erlang::Tuple["Bird", "Elephant"]

 @return [Tuple]
 @yield [element] Once for each element.