title: Scala anonymous function syntax and return type
body: <p>I have found few kinds of anonymous function syntax in scala:</p>
  
  <pre><code>val m5_1 = { (n: Int) =&gt; n * 5 }
  
  val m5_2 = (n: Int) =&gt; { n * 5 } : Int
  
  val m5_3: Int =&gt; Int = n =&gt; { n * 5 }
  </code></pre>
  
  <p>Is that all types or some more syntax kinds present?</p>
  
  <p>Are they all equivalent?</p>
  
  <p>Which one is more/less preferred?</p>
  
  <p>How can I specify the return type in <code>m5_1</code> ?</p>