title: Pass function argument as code block
body: <p>I am new to Scala. I have been searching but there is no easy "search string" for the seemingly easy question I have.</p>
  
  <pre><code>def foo( f: (String) =&gt; String ){println(f("123"))}
  foo{_+"abc"} //works
  
  def bar( f :() =&gt; String ){println(f())}
  bar{"xyz"} // why does this not work?
  
  def baz( f: =&gt; String ){println(f)}
  baz{"xyz"} //works
  </code></pre>
  
  <p>Why does the second (<code>bar</code>) not work?</p>