【发布时间】:2021-02-03 01:31:19
【问题描述】:
对于Maybe a的列表,如何过滤只取列表中不是Nothing的元素?
-- input
pas = [Just 3, Just 1, Just 5, Just 9, Nothing, Just 10, Nothing] :: [Maybe Int]
-- expected output
new_pas = [3, 1, 5, 9, 10]
我尝试过使用map 的不同方式并查看了mapMaybe,但找不到合适的组合。
【问题讨论】:
-
map本身无法过滤。concat . map (\case Nothing -> [] ; Just x -> [x])会。 (当然,你的列表理解答案表明用 LC 写得更好)。
标签: list haskell filter map-function maybe