Herbert Valerio actually pointed out to me in PVT that funnily enough I've actually *forgotten* and *rediscovered* this idiom! =)
http://www.haskell.org/pipermail/libraries/2011-November/017257.html Cheers! On Sat, Jan 26, 2013 at 5:43 PM, Felipe Almeida Lessa <felipe.le...@gmail.com> wrote: > Hey, > > Just wanted to share this little insight I had that I don't think is a > common idiom. Often times I need to define: > > whenJust :: Monad m => Maybe a -> (a -> m b) -> m () > whenJust (Just x) f = f x > whenJust Nothing _ = return () > > It always bugged me that you can't find this function anywhere. > Actually, you can find it on at least a couple of packages [1], but > you can't find it on a standard place. Or can you? > > A few days ago I decided to hoogle the type of whenJust [2] and what I > discovered is that > > import Data.Foldable (forM_) > whenJust = forM_ > > For example, instead of: > > mfoo <- doSomething > case mfoo of > Just foo -> ... > Nothing -> return () > > You may just write: > > forM_ mfoo $ \foo -> > ... > > There you go. I hope this is useful to someone =). > > Cheers, > > [1] http://holumbus.fh-wedel.de/hayoo/hayoo.html?query=whenJust > [2] > http://www.haskell.org/hoogle/?hoogle=Maybe%20a%20-%3E%20(a%20-%3E%20m%20b)%20-%3E%20m%20() > > -- > Felipe. -- Felipe. _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe