[Haskell-beginners] How does forever works ?

Olivier Revollat revollat at gmail.com
Mon Jul 9 11:58:56 UTC 2018


Hey I think it's a bit clearer now .... need to meditate on this :) Thanks !

Le lun. 9 juil. 2018 à 13:55, Francesco Ariis <fa-ml at ariis.it> a écrit :

> Hello Olivier,
>
> On Mon, Jul 09, 2018 at 01:31:07PM +0200, Olivier Revollat wrote:
> > In the second case, it's a simple recursion, so far so good ... but when
> I
> > look at the implementation of "forever" i can't wrap my head around :
> >
> >
> http://hackage.haskell.org/package/base-4.11.1.0/docs/src/Control.Monad.html#forever
>
>     forever a   = let a' = a *> a' in a'
>
> `*>` is the same as `>>` (if you have ever met `>>`), with the difference
> that the latter works on monads only. In do notation, we could write
>
>     forever :: Monad m => m a -> m b
>     forever a = let a' = do a
>                             a' in
>                 do a'
>
> Which should be easier to get: we `do` a'; a' is nothing but a and a',
> so we do a and then a', which is nothing but a and a', etc.
>
> Does this explanation feel right?
>
> As soon as you can, familiarise yourself what the do notation desugars to:
> in my opinion plain operators are clearer
> -F
> _______________________________________________
> Beginners mailing list
> Beginners at haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/beginners/attachments/20180709/82d37be8/attachment.html>


More information about the Beginners mailing list