在bool [,] F#中获得真数

时间:2014-08-01 06:03:19

标签: arrays multidimensional-array f#

我在F#中有一个bool [,],我希望得到真实存在的数量。如何在不进入命令式编程的情况下实现这一目标?

这是我目前的解决方案,实际上只是用f#写的c#。

let mutable x = 0
for cell in cells do
    if cell = true then x <- x + 1
x

2 个答案:

答案 0 :(得分:7)

以这种方式:

let x = cells |> Seq.cast |> Seq.filter id |> Seq.length

它的作用是过滤掉false个值(请参阅Seq.filter),然后计算剩下的内容。

答案 1 :(得分:6)

一种方法是使用seq,然后使用Seq.sumBy

cells |> Seq.cast<_> |> Seq.sumBy (function |true -> 1 |false -> 0);;