title: Getting "error: type mismatch; found : Unit required: () => Unit" on callback
body: <p>I am just starting out going through a tutorial on scala and have hit a block. I have merged together a couple of examples and am getting an error, but don't know why.</p>
  
  <pre><code>import java.text.DateFormat._
  import java.util.{Date, Locale}
  
  object FrenchDate {
    def main(args: Array[String]) {
      timer(println(frenchDate))
    }
  
    def frenchDate():String = {
      val now = new Date
      val df = getDateInstance(LONG, Locale.FRANCE)
      df format now
    }
  
    def timer(callback: () =&gt; Unit) {
      while(true) {callback(); Thread sleep 1000}
    }
  }
  </code></pre>
  
  <p>Brings the error</p>
  
  <pre><code>error: type mismatch;
  found   : Unit
  required: () =&gt; Unit
  println(frenchDate)
  </code></pre>
  
  <p>while the below works</p>
  
  <pre><code>import java.text.DateFormat._
  import java.util.{Date, Locale}
  
  object FrenchDate {
    def main(args: Array[String]) {
      timer(frenchDate)
    }
  
    def frenchDate() {
      val now = new Date
      val df = getDateInstance(LONG, Locale.FRANCE)
      println(df format now)
    }
  
    def timer(callback: () =&gt; Unit) {
      while(true) {callback(); Thread sleep 1000}
    }
  }
  </code></pre>
  
  <p>The only difference is that the date is printed out in <code>frenchDate()</code> in the second once whereas it is returned and printed in the callback on the first.</p>