Haskell递归奇数

时间:2014-12-06 03:27:24

标签: list haskell

我必须定义自己的谓词函数,递归搜索数字列表,如果找到奇数,则返回True,否则返回False

我已为我需要显示的测试数据设置了X = [1..100]。但是,我对如何获取递归来搜索列表有点不确定。我不是在寻找明确的答案,而是解释递归会如何在列表中搜索。

1 个答案:

答案 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替换为您的实际逻辑。