为什么Haskell的find总是只返回一个元素?

Hin*_*sum 0 haskell

Prelude> find odd [2,4,7,9,11]
Just 7
Run Code Online (Sandbox Code Playgroud)

我希望这会返回[7,9,11],因为它们都是奇数.为什么要find回来Just 7

有什么方法可以告诉odd函数返回我的期望吗?

che*_*ner 6

文档:

find函数接受谓词和列表,并返回与谓词匹配的列表中的第一个元素,或者Nothing如果没有这样的元素.

filter改为使用:

> filter odd [2,4,7,9,11]
[7, 9, 11]
Run Code Online (Sandbox Code Playgroud)