title: Pattern variable binding cannot appear in an expression
body: <p>I've been looking at The Swift Programming Language guide provided by apple.
  Following sample is from the book:</p>
  
  <pre><code>class HTMLElement {
      let name :String;
      let text: String?;
  
      @lazy var asHTML : () -&gt; String = {
          if let text = self.text {
              return "&lt;\(self.name)&gt;\(self.text)&lt;/\(self.name)&gt;";
          } else {
              return "&lt;\(self.name) /&gt;"
          }
      }
  }
  </code></pre>
  
  <p>I incorrectly wrote the closure as follow:</p>
  
  <pre><code>    @lazy var asHTML : () -&gt; String = {
          if (let text = self.text) {
              return "&lt;\(self.name)&gt;\(self.text)&lt;/\(self.name)&gt;";
          } else {
              return "&lt;\(self.name) /&gt;"
          }
      }
  </code></pre>
  
  <p>Notice the parentheses around <code>let text = self.text</code> and compiler complain about: </p>
  
  <blockquote>
    <p>Pattern variable binding cannot appear in an expression</p>
  </blockquote>
  
  <p>Just wondering what does <code>Pattern Variable Binding</code> mean, and why it cannot appear in an expression?</p>