FSharp--过滤掉Nones的最短路径?

时间:2014-07-31 11:39:03

标签: f#

假设我正在使用如下列表:

let items = [ Some(1); None; Some(8); ];;

仅获取列表中Some值的最短方法是什么?

items |> List.filter Option.isSome;;

那是最快的吗?使用Option.isSome有任何缺点吗?

1 个答案:

答案 0 :(得分:9)

要获取列表Some中所有items :: a option list个实例的值,您可以使用List.choose

let values = List.choose id items

这将为您的示例提供[1; 8]