Scala の例で FP にさらに取り組んで、次のようにOption
トレイトの関数を実装しようとしました。map
sealed trait MyOption[+A] {
def map[B](f: A => B): Option[B] = this match {
case Some(a) => Some(f(a))
case _ => None
}
}
ただし、コンパイル時のエラーは、私が正しく理解していれば、Some(A)
. パターン マッチングを使用して、一致する Some(A) 値を取得する最初のケースをどのように記述できますか?
>scalac MyOption.scala
MyOption.scala:3: error: constructor cannot be instantiated to expected type;
found : Some[A(in class Some)]
required: MyOption[A(in trait MyOption)]
case Some(a) => Some(f(a))
^
MyOption.scala:3: error: not found: value a
case Some(a) => Some(f(a))
^
two errors found