Function.tupled(foo _)(getParams)
o quello suggerito da Dave.
MODIFICARE:
Per rispondere al tuo commento:
E se foo fosse il costruttore di una classe?
In tal caso, questo trucco non funzionerà.
Puoi scrivere un metodo factory nell'oggetto companion della tua classe e quindi ottenere la versione tuplicata del suo apply
metodo usando una delle tecniche sopra menzionate.
scala> class Person(firstName: String, lastName: String) {
| override def toString = firstName + " " + lastName
| }
defined class Person
scala> object Person {
| def apply(firstName: String, lastName: String) = new Person(firstName, lastName)
| }
defined module Person
scala> (Person.apply _).tupled(("Rahul", "G"))
res17: Person = Rahul G
Con case class
es ottieni un oggetto compagno con un apply
metodo gratuitamente, e quindi questa tecnica è più comoda da usare con case class
es.
scala> case class Person(firstName: String, lastName: String)
defined class Person
scala> Person.tupled(("Rahul", "G"))
res18: Person = Person(Rahul,G)
So che è un sacco di duplicazioni di codice ma ahimè ... non abbiamo (ancora) le macro! ;)