Proposal: Adding Kleisli composition to Control.Monad
Donald Bruce Stewart
dons at cse.unsw.edu.au
Sun Nov 12 22:13:13 EST 2006
moonlite:
> On Mon, 2006-11-13 at 13:15 +1100, Donald Bruce Stewart wrote:
> > http://hackage.haskell.org/trac/ghc/ticket/997
>
> [snip]
>
> > Along with the useful control combinator:
> >
> > forever :: (Monad m) => m a -> m ()
>
> [snip]
>
> > +-- | @'forever' act@ repeats the action infinitely.
> > +forever :: (Monad m) => m a -> m ()
> > +forever a = a >> forever a
>
> I would personally rather see repeatM and repeatM_ like the
> replicateM/replicateM_ pair already in Control.Monad.
>
> I implement them like this:
> repeatM = sequence . repeat
> repeatM_ = sequence_ . repeat
>
> Google CodeSearch tells me it's the way replicateM was implemented too:
> http://www.google.com/codesearch?hl=en&lr=&q=replicateM+file%3A%5C.hs%
> 24&btnG=Search
>
> Btw, i hope it is ok to give my opinion on this. Im asking since im not
> a library developer or anything just a normal programmer.
On this topic, we can go back to:
http://www.mail-archive.com/cvs-all@haskell.org/msg26511.html
However, it was pointed out that repeatM is next to useless, and it is
traditional to use 'forever' for repeatM_ (see for example "Tackling the
Awkward Squad", and http://haskell.org/haskellwiki/Roll_your_own_IRC_bot
That being said, repeatM_ isn't too bad, should people prefer it.
-- Don
More information about the Libraries
mailing list