我想轻松地从“失败”数据类型中取出一个值,或者在失败的情况下使用默认值。
这是我的实现Maybe
:
infixr 1 <||>
(<||>) :: Maybe a -> a -> a
(<||>) = flip fromMaybe
pred :: String -> String -> Bool
pred x name = (x ==) <$> name `lookup` myMap <||> False
pred
True
如果name
映射到x
in则返回myMap
。
但是就像在 Haskell 中通常的情况一样,有一种我不知道的更抽象的方法来做到这一点。任何人?