This answer on another question says that
array.map(&:to_s)
is faster than
array.map { |n| n.to_s }
In the first example, & turns :to_s into a Proc. The second example uses a block.
Why might a Proc be faster than a block in that benchmark? Is there some optimization that this technique allows the interpreter to do?