『 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
誰かがここで何が起こっているのか説明できますか?
ありがとう