optionのリストから、Someの要素のみを取り出す方法を教えてください
以下のようなリストがあった場合に、Some
の要素のみを取り出す方法を教えてください。
let xs = [ Some 10; None; Some 30; Some 2; None ]
単にfilter
しただけだと、Some
が残ってしまいますが、Some
だけを取り出しているのでこれを取り除きたいです。
let res =
xs
|> List.filter Option.isSome
|> List.map Option.get // [ 10; 30; 2 ]
これで一応実現はできますが、(Option.isSome
でフィルタしているから大丈夫だとはいえ)Option.get
を使っているのが危険な感じがして気持ち悪いです。