Scalaの値に演算f: (T,T) => Tを適用できるようにしたい。2つの値のいずれかがである場合Option[T]の結果が必要です。NoneNone
より具体的には、次のことを行うためのより短い方法があるかどうかを知りたいです。
def opt_apply[T](f: (T,T) => T, x: Option[T], y: Option[T]): Option[T] = {
  (x,y) match {
    case (Some(u),Some(v)) => Some(f(u,v))
    case _ => None
  }
}
私は試しまし(x zip y) map {case (u,v) => f(u,v)}たが、結果はではありIterator[T]ませんOption[T]。