在没有fromJust的情况下从maybes列表中提取值列表

Del*_*ite 6 haskell

输入: [Just "foo", Just "bar", Nothing, Just "quux"]

输出: ["foo", "bar", "quux"]

我对使用以下解决方案不满意,fromJust因为它对于不喜欢不安全功能的elm来说不是很方便:

extract list = map fromJust $ filter isJust list

是否有另一种简洁/惯用的方法来实现这一目标?

Lee*_*Lee 15

你可以使用catMaybes:

import Data.Maybe
catMaybes list
Run Code Online (Sandbox Code Playgroud)