o que aconteceu quando passar um método para o método iterador

Como sabemos, wo pode passar um método para um método iterador por um&: prefixo.
Por exemplo:

["a", "b"].map(&:upcase) #=> ["A", "B"] 
def rettwo
  2
end
["a", "b"].map(&:rettwo) #=> [2, 2]

Aqui está o problema, quando escrevo um método, passo um método com&: prefixo para ele, recebi uma mensagem de erro: "ArgumentError: no receiver given".
Deixe-me mostrar o código:

def a_simple_method &proc
  puts proc.class # it shows `Proc`
  proc.call
end
def a_iterator_method
  puts yield
end

a_simple_method &:rettwo #=> ArgumentError: no receiver given
a_iterator_method &:rettwo #=> ArgumentError: no receiver given

O que eu sinto falta, como omap como método de Array lidar com isso

questionAnswers(1)

yourAnswerToTheQuestion