我试着检查两个列表是否有相同的元素。
Example :
List1 = ["John", "Thomas", "Sinclair", "Marie"]
List2 = ["Philip", "Albert", "Maria"]结果应该是假的。
但如果是这样的话
List3 = ["John", "Thomas", "Sinclair", "Marie"]
List4 = ["Philip", "Albert", "Marie", "Edward"]结果应该是真的,list3 e list4有同样的,"Marie“。
我的代码:
import qualified Data.Text as Text
import qualified Data.Text.IO as Text
main = do
list1 <- fmap Text.lines (Text.readFile "file1.txt")
list2 <- fmap Text.lines (Text.readFile "file.txt")
compareList list1 list2
compareList (x:xs) ys | elem x ys = True
|otherwise = compareList xs ys
result =
if ((compareList list1 list2) == True)
then putStrnLn ( " They sare elements")
else
putStrnLn ("They don't share elements")我完全迷路了,代码不编译。
发布于 2014-12-14 17:33:41
如果不使用显式递归,则可以使用以下方法
compareList :: (Eq a) => [a] -> [a] -> Bool
compareList xs ys = foldl (\acc x -> x `elem` ys || acc) False xshttps://stackoverflow.com/questions/27471710
复制相似问题