class Hamster::Vector

def map(&block)

def map(&block)
  return self unless block_given?
  reduce(EmptyVector) { |vector, item| vector.add(yield(item)) }
end