Nel libro Functional Programming In Scala, c'è un esempio di "Sollevamento" in cui una funzione con tipo A => B
viene promossa a Option[A] => Option[B]
.Confusione con le funzioni di sollevamento in Scala
Questo è il modo di sollevamento viene implementato:
def lift[A,B](f: A => B):Option[A] => Option[B] = _ map f
Ho un paio di confusioni riguardo a questa:
Il primo è, che cosa è il '_' qui? E in secondo luogo, quando rimuovo il tipo restituito dal DEF, in attesa del tipo di inferenza per fare la sua magia ottengo la seguente eccezione:
scala> def lift[A,B](f: A => B) = _ map f
<console>:7: error: missing parameter type for expanded function ((x$1) => x$1.map(f))
def lift[A,B](f: A => B) = _ map f
Qualcuno può spiegare cosa sta succedendo qui?
Grazie