Ho un problema di conversioni implicite e funzioni di ordine superiore. Sembra che una conversione implicita di una funzione in una funzione di secondo ordine funzioni solo se la funzione da convertire ha almeno due parametri.La conversione implicita di una funzione in una funzione di secondo ordine funziona solo se la funzione da convertire ha almeno due parametri
Works:
implicit def conv(foo: Integer => String): String => String = null
non funziona:
implicit def conv(foo: Integer => String): String => String => String = null
Works:
implicit def conv(foo: (Integer, Integer) => String): String => String => String = null
esempio completo con punto di guasto:
{
implicit def conv(foo: Integer => String): String => String = null
def baadf00d(foo: Integer): String = null
def deadbeef(foo: String => String) = null
deadbeef(conv(baadf00d))
deadbeef(baadf00d)
}
{
implicit def conv(foo: Integer => String): String => String => String = null
def baadf00d(foo: Integer): String = null
def deadbeef(foo: String => String => String) = null
deadbeef(conv(baadf00d))
deadbeef(baadf00d) // <-------- DOES NOT COMPILE!
}
{
implicit def conv(foo: (Integer, Integer) => String): String => String => String = null
def baadf00d(foo: Integer, bar: Integer): String = null
def deadbeef(foo: String => String => String) = null
deadbeef(conv(baadf00d))
deadbeef(baadf00d)
}
Cosa mi manca?
Grazie!
si presenta come un verruca risoluzione implicita a Scala a me. Quale versione di Scala è questa? – gzm0