title: Dont understand how a multi-line statement can be parsed without {} curly blocks
body: <p>I follow the C family (PHP is a wannabe!) requirement that a statement that spans over multiple lines must be enclosed in curlies. </p>
  
  <p>Scala avoids parse errors in this code from O'Reilly's Programming Scala.</p>
  
  <pre><code>def apply(specification: String): Option[Widget] = specification match {
      case ButtonExtractorRE(label)   =&gt; new Some(new Button(label))
      case TextFieldExtractorRE(text) =&gt; new Some(new TextField(text))
      case _ =&gt; None
    }
  </code></pre>
  
  <p>whereas I believe it should look like (the body of the function is enclosed):</p>
  
  <pre><code>def apply(specification: String): Option[Widget] = {
      specification match {
              case ButtonExtractorRE(label)   =&gt; new Some(new Button(label))
              case TextFieldExtractorRE(text) =&gt; new Some(new TextField(text))
              case _ =&gt; None
              }
      }
  </code></pre>
  
  <hr>
  
  <p>while Scala can parse it, can a programmer "get it"? I dont. Am I missing some intuitive idea? </p>
  
  <p>Should I rather avoid such a practice, if it leads to practical problems (like poor readability?</p>