我有一个布尔列表,我想检查列表中的1个元素是否为真。我的程序的工作方式是每当创建一个布尔列表时,它只有一个真值或者根本没有。
我有什么想法可以解决这个问题吗?
答案 0 :(得分:4)
您可以使用List.contains
查看列表中是否有真值:
let containsTrue = theBoolList |> List.contains true
如果您需要检查正好一个真值,您可以在列表上fold
来计算它们:
let fn count item = if item then (count + 1) else count
let numberOfTrue = theBoolList |> List.fold fn 0
let onlyOneTrue = numberOfTrue = 1