[Haskell-cafe] Re: A function for Maybes
Al Falloon
afalloon at synopsys.com
Thu Jan 25 14:12:48 EST 2007
John Ky wrote:
> Is there a built-in function that already does this?
Usually, when I have a question like this, I try Hoogle first:
http://www.haskell.org/hoogle/?q=%28a+-%3E+b%29+-%3E+Maybe+a+-%3E+Maybe+b
Unfortunatly, the right answer (fmap) is on the second page of results.
(I am really excited for the new version of Hoogle, its supposed to be
pretty close to release)
> foo :: (a -> b) -> Maybe a -> Maybe b
> foo f m
> | isNothing m = Nothing
> | otherwise = Just (f (fromJust m))
>
> *Main> foo (+2) (Just 3)
> Just 5
> *Main> foo (+2) Nothing
> Nothing
Prelude> fmap (+2) (Just 2)
Just 4
Prelude> fmap (+2) Nothing
Nothing
it works over all Functors, so list also works:
Prelude> fmap (+2) [2,3]
[4,5]
Prelude> fmap (+2) []
[]
and Map and so on.
--
Alan Falloon
More information about the Haskell-Cafe
mailing list