List F#布尔列表检查列表中的1个元素是否为真
我有一个布尔值列表,我想检查列表中的1个元素是否为真。我的程序的工作方式是,每当创建布尔列表时,它只有一个真值,或者根本没有真值 你知道我该怎么做吗?你可以用它来查看列表中是否有真实的值:List F#布尔列表检查列表中的1个元素是否为真,list,f#,List,F#,我有一个布尔值列表,我想检查列表中的1个元素是否为真。我的程序的工作方式是,每当创建布尔列表时,它只有一个真值,或者根本没有真值 你知道我该怎么做吗?你可以用它来查看列表中是否有真实的值: let containsTrue = theBoolList |> List.contains true 如果需要只检查一个真值,则可以在列表上方对其进行计数: let fn count item = if item then (count + 1) else count let numberOfTr
let containsTrue = theBoolList |> List.contains true
如果需要只检查一个真值,则可以在列表上方对其进行计数:
let fn count item = if item then (count + 1) else count
let numberOfTrue = theBoolList |> List.fold fn 0
let onlyOneTrue = numberOfTrue = 1
你在问什么?如何检查特定位置的项目值或如何确定任何项目是否为真?此外,检查是否应确保只有一个
true
而不是更多?嗨,对不起,我认为我的逻辑可能有点错误。您可以添加一段代码,执行相同的操作,但如果发现false,则返回false。我试图更改您的代码,以便它查找false,但如果找到它,它将返回true。@JacksonSentzke如果所有元素均为true,则返回true,如果任何元素均为false,则返回false?对需求做一个新的问题可能是有意义的,因为它和这个问题非常不同。。。(如果你在这里发布链接,我会在那里回复)@JacksonSentzke或询问:)我们可以更轻松地讨论你的要求。是的,对不起,我只是在我将你的代码放入我的程序后才意识到我的错误。让exactlyOneTrue bools=List.filter id bools=[true]