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を使っているのが危険な感じがして気持ち悪いです。