如何檢查布爾表的列表是否包含True?如何檢查布爾值列表是否包含值?
如
[True,False] = True
[False,False] = False
[False,False,True] = True
如何檢查布爾表的列表是否包含True?如何檢查布爾值列表是否包含值?
如
[True,False] = True
[False,False] = False
[False,False,True] = True
您可以隨時在Hoogle檢查的標準功能存在 -
對於例如 -
http://www.haskell.org/hoogle/?hoogle=%5BBool%5D+-%3E+Bool
爲您提供了多種功能,其中有「或」是一個針對這一要求。
編輯:
或是一個函數。它是簽名,或者:: [Bool] - > Bool - 表示它需要一個Bool列表並返回一個Bool。
如此,只是在做
myList = [True, False, False]
if (or myList) then ..something.. else ..something else..
可能是你將如何在代碼中使用這個(更換..something ..和其他..something ..實際表達式)
我應該如何申請或列入清單? – John
增加了更多細節。 –
您正在尋找的or
功能:
> ghci
Prelude> or [True, False]
True
Prelude> or [False, False]
False
另外還有and
函數返回True
如果列表中的所有元素都True
。
的通用方式檢查列表包含了一些值是使用elem
作爲
Prelude> True `elem` [True, False]
True
Prelude> True `elem` [False, False]
False
Prelude> True `elem` [False, False, True]
True
有幾個有趣的方式來做到這一點:
or
foldl (||) False
any id
not . all not
...
'或'應該做的 – Ingo
http://hackage.haskell.org/package/base-4.6.0.1/docs/Prelude.html#v:elem – Vladimir
如果列表非空,你可以使用「最大」;-) –