Im Buch Functional Programming In Scala gibt es ein Beispiel für' Heben ', bei dem eine Funktion mit dem Typ A => B
zu Option[A] => Option[B]
befördert wird.Verwechslung mit 'Heben'-Funktionen in Scala
Dies ist, wie Lift implementiert:
def lift[A,B](f: A => B):Option[A] => Option[B] = _ map f
Ich habe ein paar Verwirrungen bezüglich dieser:
Die erste ist, was die ‚_‘ hier ist? Und zweitens, wenn ich die Rückkehr Typ aus der def entfernen, den Typ-Inferenz erwartet seine Magie, die ich die folgende Ausnahme erhalten zu tun:
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
Kann jemand erklären, was hier vor sich geht?
Dank