maybe-extra
maybe-extra copied to clipboard
New function `mapOr : (a -> b) -> b -> Maybe a -> Maybe b`
I find this pattern often in various cases where i want to map an optional value or put a default if its nothing but keep it optional.
mapOr : (a -> b) -> b -> Maybe a -> Maybe b
mapOr fn default ma =
case ma of
Nothing -> Just default
Just a -> Just (fn a)
-- Changes :
ma |> Maybe.map f |> Maybe.withDefault d |> Just
-- or
ma |> Maybe.map f |> Maybe.Extra.orElse (Just d)
-- To :
ma |> MapOr f d