Массив # каждый возвращает своего получателя, так что это может быть не лучшим примером того, что вы ищете.Предположим, у нас есть
arr = [['a', 'b'], ['c', 'd']]
и мы хотим
arr.map(&:first).map(&:upcase)
#=> ["A", "C"]
Чтобы использовать один амперсанд, можно написать
arr.map(&Proc.new { |e| e.first.upcase })
#=> ["A", "C"]
&
, чтобы преобразовать процесс в блок,вызывая выполнение
arr.map { |e| e.first.upcase }
.