如何在Haskell列表推导中处理Maybe类型

时间:2015-03-20 12:09:35

标签: haskell types functional-programming

我在Haskell中有一个列表解析,它指定了一个Maybe类型的谓词:

[x | x <- listOfMaybes, isJust(f y), x == fromJust(f y)]

有没有办法简化这个表达式?

2 个答案:

答案 0 :(得分:14)

您只需使用catMaybes(来自Data.Maybe)过滤掉所有Nothing值。

答案 1 :(得分:14)

如果您只想过滤掉所有Nothing s,那么shang的答案会提供最简洁的解决方案。但是,它可以在列表理解中轻松完成:

[x | Just x <- f y]