Prelude> find odd [2,4,7,9,11]
Just 7
我希望这会返回[7,9,11],因为它们都是奇数。为什么find
会返回Just 7
?
有什么方法可以告诉odd
函数返回我期望的内容吗?
答案 0 :(得分:6)
find
函数接受谓词和列表,并返回匹配谓词的列表中的第一个元素,如果没有这样的元素,则返回Nothing
。
改为使用filter
:
> filter odd [2,4,7,9,11]
[7, 9, 11]
答案 1 :(得分:4)
使用filter
> filter odd [2,4,7,9,11]
[7, 9, 11]
答案 2 :(得分:4)
您正在寻找filter
,而不是find
。 find
的工作是找到第一个,或者让你知道没有一个。 filter
的工作是列出所有这些。