Thanks for all the comments. I've updated the wiki page, in particular to make it clear that Applictive do-notation would be an opt-in extension.

Cheers,
Simon

On 02/10/13 16:09, Dan Doel wrote:
Unfortunately, in some cases, function application is just worse. For
instance, when the result is a complex arithmetic expression:

     do x <- expr1; y <- expr2; z <- expr3; return $ x*y + y*z + z*x

In cases like this, you have pretty much no choice but to name
intermediate variables, because the alternative is incomprehensible. But
applicative notation:

     (\x y z -> x*y + y*z + z*x) <$> expr1 <*> expr2 <*> expr3

moves the variable bindings away from the expressions they're bound to,
and we require extra parentheses to delimit things, and possibly more.

Desugaring the above do into applicative is comparable to use of plain
let in scheme (monad do is let*, mdo was letrec). And sometimes, let is
nice, even if it has an equivalent lambda form.

And as Jake mentioned, syntax isn't the only reason for Applicative.
Otherwise it'd just be some alternate names for functions involving Monad.



On Wed, Oct 2, 2013 at 5:12 AM, <p.k.f.holzensp...@utwente.nl
<mailto:p.k.f.holzensp...@utwente.nl>> wrote:

    I thought the whole point of Applicative (at least, reading Connor’s
    paper) was to restore some function-application-style to the whole
    effects-thing, i.e. it was the very point **not** to resort to binds
    or do-notation.____

    __ __

    That being said, I’m all for something that will promote the use of
    the name “pure” over “return”.____

    __ __

    +1 for the Opt-In____

    __ __

    Ph.____

    __ __

    __ __

    __ __

    *From:*Glasgow-haskell-users
    [mailto:glasgow-haskell-users-boun...@haskell.org
    <mailto:glasgow-haskell-users-boun...@haskell.org>] *On Behalf Of
    *Iavor Diatchki

    ____

    __ __

    do x1 <- e1____

    __ __

        -- The following part is `Applicative`____

        (x2,x3) <- do x2 <- e2 x1____

                      x3 <- e3____

                      pure (x2,x3)____

    __ __

        f x1 x2 x3____


    _______________________________________________
    Glasgow-haskell-users mailing list
    Glasgow-haskell-users@haskell.org
    <mailto:Glasgow-haskell-users@haskell.org>
    http://www.haskell.org/mailman/listinfo/glasgow-haskell-users



_______________________________________________
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users

Reply via email to