title: SML : why functions always take one-argument make language flexible
body: <p>I have learned (from a SML book) that functions in SML always takes just one argument: a tuple.  A function that takes multiple arguments is just a function that takes one tuple as argument, implemented with a tuple binding in function binding. I understand this point.</p>
  
  <p>But after this, the book says something that I don't understand:</p>
  
  <p><code>this point makes SML language flexible and elegant design, and you can do something useful that you cannot do in Java.</code></p>
  
  <p>Why does this design make the language Flexible? What is the text referring to, that SML can but java cannot?</p>