Per riassumere da tale risposta: No, non è possibile rendere generiche le funzioni anonime anonime, ma è possibile definire esplicitamente la funzione come una classe che estende uno dei tratti Funzione0, Funzione1, Funzione2, ecc. E definire la funzione di applicare da quei tratti. Quindi la classe che definisci può essere generica. Ecco l'estratto dell'articolo originale, disponibile here:
scala> class myfunc[T] extends Function1[T,String] {
| def apply(x:T) = x.toString.substring(0,4)
| }
defined class myfunc
scala> val f5 = new myfunc[String]
f5: myfunc[String] = <function>
scala> f5("abcdefg")
res13: java.lang.String = abcd
scala> val f6 = new myfunc[Int]
f6: myfunc[Int] = <function>
scala> f6(1234567)
res14: java.lang.String = 1234
fonte
2010-04-02 14:21:06
può anche scrivere più idiomaticamente come 'estende (T => String) {' –