title: Passing symbol to block methods
body: <p>Some block methods such as <code>inject</code> can optionally take a symbol instead of a block:</p>
  
  <pre><code>%w[a b c].inject(&amp;:+)
  # =&gt; "abc"
  %w[a b c].inject(:+)
  # =&gt; "abc"
  %w[a b c].inject("", :+)
  # =&gt; "abc"
  </code></pre>
  
  <p>while other block methods such as <code>map</code> cannot:</p>
  
  <pre><code>%w[a b c].map(&amp;:upcase)
  # =&gt; ["A", "B", "C"]
  %w[a b c].map(:upcase)
  # =&gt; ArgumentError: wrong number of arguments (1 for 0)
  </code></pre>
  
  <p>Why can't the latter take a symbol?</p>