我是Haskell的新手,很遺憾,如果這是一個基本問題。Haskell:檢查Int是否在Int的列表中
我目前有一個Int列表,我試圖創建一個函數,它接受一個變量x並返回一個布爾值,取決於變量是否存在於列表中。
我有一個搜索,發現Data.List查找功能,但這dosent似乎返回一個布爾值。
我正在使用GHCi。
謝謝,
我是Haskell的新手,很遺憾,如果這是一個基本問題。Haskell:檢查Int是否在Int的列表中
我目前有一個Int列表,我試圖創建一個函數,它接受一個變量x並返回一個布爾值,取決於變量是否存在於列表中。
我有一個搜索,發現Data.List查找功能,但這dosent似乎返回一個布爾值。
我正在使用GHCi。
謝謝,
首先找到您需要的功能的類型。
要「檢查」是指返回True或False,一個布爾值。
因此函數需要一個INT,INT(又名[INT])的列表,並返回布爾:
Int -> [Int] -> Bool
現在ask hoogle。
elem :: Eq a => a -> [a] -> Bool
Hoogle是一個非常有用的工具。你可以integrate it with ghci。
如果標準elem
功能不存在,您可能已經在find
的正確軌道上。
myElem :: (Eq a) => a -> [a] -> Bool
myElem x = maybe False (const True) . find (== x)
還有很多其他的方法來實現它太像
myElem x = any (== x)
myElem x = or . map (== x)
myElem x = not . null . filter (== x)
myElem x = foldr (\y b -> y == x || b) False
等
我這樣做更多的只是這樣。
l=[1,2,3,4,5]
checkIfElem :: Int -> [Int] ->Bool
checkIfElem x l
|x`elem` l =True
|otherwise=False
問谷歌帶我到這裏來。你不必苛求OP。 – fotanus 2015-05-26 16:49:50
如何改善答案的語氣?我並不想苛刻。 – AtnNn 2015-05-26 20:18:55