title: How can I call a function that takes 2 parameters with a Tuple2?
body: <p>I have a function like so:</p>
  
  <pre><code>def print(name:String, surname:String) { println(name + " " + surname) }
  </code></pre>
  
  <p>I also have a Tuple2:</p>
  
  <pre><code>val johnsmith = ("John", "Smith")
  </code></pre>
  
  <p>When I call print with johnsmith I get the following error:</p>
  
  <pre><code>scala&gt; print(johnsmith)                                                       
  
  error: not enough arguments for method print: (name: String,surname: String)Unit.
  Unspecified value parameter surname.
         print(johnsmith)
              ^
  </code></pre>
  
  <p>Is there some way around this? I can get this to work by making print accept a Tuple2:</p>
  
  <pre><code>def print2(t:Tuple2[String,String]) { println(t._1 + " " + t._2) }
  </code></pre>
  
  <p>Now I can call it either way:</p>
  
  <pre><code>scala&gt; print2(johnsmith)
  John Smith
  
  scala&gt; print2("john", "smith")
  john smith
  </code></pre>
  
  <p>Is there something I'm missing?</p>