有没有办法查看一个列表,当你找到值 4 和 5 时,做点什么?
我试过foo (4:5:xs) = <do something>
但它没有编译
您还必须描述当您找不到 4 和 5 时会发生什么!
假设您希望在"Found"
看到 4 和 5 时返回字符串,"Not found"
否则。然后你可以使用这个功能:
foo :: [Int] -> String
foo (4:5:xs) = "Found"
foo (_:xs) = foo xs
foo [] = "Not found"
如果您在看不到 4 和 5 时不想“做任何事情”,则必须将函数的返回类型更改为Maybe String
(在此示例中):
foo :: [Int] -> Maybe String
foo (4:5:xs) = Just "Found"
foo (_:xs) = foo xs
foo [] = Nothing
我会使用第二个版本,这样您就不必记住“未找到”的值是什么。