title: What is the apply function in Scala?
body: <p>I never understood it from the contrived unmarshalling and verbing nouns ( an <code>AddTwo</code> class has an <code>apply</code> that adds two!) examples.</p>
  
  <p>I understand that it's syntactic sugar, so (I deduced from context) it must have been designed to make some code more intuitive.</p>
  
  <p>What meaning does a class with an <code>apply</code> function give? What is it used for, and what purposes does it make code better (unmarshalling, verbing nouns etc)?</p>
  
  <p>how does it help when used in a companion object?</p>