リストがl:List[T1]
あり、現在次のことを行っています。
myfun : T1 -> Option[T2]
val x: Option[T2] = l.map{ myfun(l) }.flatten.find(_=>true)
このmyfun
関数は None または Some を返し、 flatten はすべての None を破棄し、 find はリストの最初の要素があればそれを返します。
これは私には少しハッキーに思えます。私は、これを少し無駄が少なく、より賢くするための理解などがあるかもしれないと考えています。例: list の実行中にanymyfun
が返された場合、その後の回答は必要ありません。 Some
map
l