Что здесь делает &
?
Именно так, конвертировать proc в блок.
У меня нет блока.У меня есть необработанный объект proc (не лямбда)
Возможно, вы думаете, что это (proc и lambda) две совершенно разные сущности?Они не.Они почти одно и то же.
proc {} # => #<Proc:0x00007fe50882ecc8@-:1>
-> {} # => #<Proc:0x00007fe50882e840@-:2 (lambda)>
Конечно, то же самое относится и к оператору &
.