如何检查布尔列表是否包含值?

时间:2013-10-07 14:16:06

标签: haskell

如何检查布尔列表是否包含True?

例如

[True,False] = True
[False,False] = False
[False,False,True] = True

5 个答案:

答案 0 :(得分:5)

您正在寻找or功能:

> ghci

Prelude> or [True, False]
True
Prelude> or [False, False]
False

如果列表的所有元素都是and,还有True函数返回True

答案 1 :(得分:5)

您可以随时检查Hoogle中是否存在标准功能。

例如:http://www.haskell.org/hoogle/?hoogle=%5BBool%5D+-%3E+Bool

为您提供了几个功能,其中or是此要求的功能。

编辑:

or是一个功能。它的签名or :: [Bool] -> Bool表示它包含Bool列表并返回Bool

所以,只是做

myList = [True, False, False]

if (or myList) then ..something.. else ..something else.. 

可能就是你将如何在你的代码中使用它(用实际表达式替换..something ..和..something else ..)。

答案 2 :(得分:0)

尝试使用HoogleHayoo作为搜索引擎。 并浏览Platform libs以获得答案。

回复位于Prelude

or :: [Bool] -> Bool

答案 3 :(得分:0)

检查列表是否包含某些值的一般方法是使用{/ 3}},如

Prelude> True `elem` [True, False]
True
Prelude> True `elem` [False, False]
False
Prelude> True `elem` [False, False, True]
True

答案 4 :(得分:0)

有几种有趣的方法可以做到这一点:

or
foldl (||) False
any id
not . all not
...
相关问题