title: Why might a proc run faster than a block?
body: <p><a href="https://stackoverflow.com/a/2211760/4376">This answer</a> on another question says that</p>
  
  <pre><code>array.map(&amp;:to_s)
  </code></pre>
  
  <p>is faster than</p>
  
  <pre><code>array.map { |n| n.to_s }
  </code></pre>
  
  <p>In the first example, <code>&amp;</code> turns <code>:to_s</code> into a Proc. The second example uses a block.</p>
  
  <p>Why might a Proc be faster than a block in that benchmark? Is there some optimization that this technique allows the interpreter to do?</p>