如何检查布尔列表是否包含True?
例如
[True,False] = True
[False,False] = False
[False,False,True] = True
答案 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)
答案 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
...