我在Haskell中使用了一个列表推导式,对Maybe类型指定了一个谓词:
[x | x <- listOfMaybes, isJust(f y), x == fromJust(f y)]
是否有一种简化这个表达式的方法?[x | x <- listOfMaybes, isJust(f y), x == fromJust(f y)]
是否有一种简化这个表达式的方法?如果你只想过滤掉所有的 Nothing
,shang 的答案提供了最简洁的解决方案。然而,也可以轻松地使用列表推导式来完成:
Nothing
,shang的答案提供了最简洁的解决方案。但是,它也可以在列表推导式中轻松完成:[x | Just x <- f y]
flip concatMap (f y) $ \result -> case result of {Just x -> [x]; {-Implicitly added!-} _ -> []}
。 - dfeuerJust x <- f y
可能会出错。 - JonnyRaa
<-
,这不是列表推导式,我怀疑它是否能编译。 - Frankyx==fromJust(f y)
是不必要的。在isJust(f y)
的条件下就可以完成任务。 - Stephan