7

『 Functional Programming In Scala』という本には、型を持つ関数A => Bが に昇格される「Lift」の例がありOption[A] => Option[B]ます。

これがリフトの実装方法です。

def lift[A,B](f: A => B):Option[A] => Option[B] = _ map f

これに関していくつかの混乱があります:

最初のものは、ここの「_」は何ですか? 次に、定義から戻り値の型を削除すると、型推論がその魔法を行うことを期待して、次の例外が発生します。

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

誰かがここで何が起こっているのか説明できますか?

ありがとう

4

1 に答える 1