我必须定义自己的谓词函数,递归搜索数字列表,如果找到奇数,则返回True
,否则返回False
。
我已为我需要显示的测试数据设置了X = [1..100]
。但是,我对如何获取递归来搜索列表有点不确定。我不是在寻找明确的答案,而是解释递归会如何在列表中搜索。
答案 0 :(得分:2)
你想要的是函数any odd
:
any :: (a -> Bool) -> [a] -> Bool
Odd :: Integral a => a -> Bool
any odd :: Integral a => [a] -> Bool
anyOdd :: Integral a => [a] -> Bool
anyOdd = any odd
如果你想自己定义anyOdd
函数,那么你必须使用递归:
anyOdd :: Integral a => [a] -> Bool
anyOdd [] = undefined
anyOdd (x:xs)
| odd x = undefined
| otherwise = undefined
您需要将undefined
替换为您的实际逻辑。