[Haskell-cafe] Sequence of lifting transformation operators
Alexey Vagarenko
vagarenko at gmail.com
Tue Jan 31 05:56:11 UTC 2017
What is the order of unwrapping?
`return $ !a + !b` doesn't equals `return $ !b + !a` right?
2017-01-31 9:37 GMT+05:00 Taeer Bar-Yam <taeer at necsi.edu>:
> This is (IMO) very similar in use-case to Idris' bang-notation. I'll give
> a brief
> summary of what that is and then explain the pros/cons that I see between
> them.
>
> In Idris the do notation has the added notation that
> do return $ !a + !b
> would desugar to
> do
> a' <- a
> b' <- b
> return $ a' + b'
>
> So !a unwraps a higher up and then uses the unwrapped version.
> Thus if you want to apply a function to apply a function to some wrapped
> and
> some unwrapped values:
> do return $ f !a b !c !d
>
>
> Pros/Cons:
> - Idris notation is (IMO) more visually appealing.
> - In particular, it puts the information about which arguments are lifted
> next
> to the arguments themselves, which matches our intuition about what's
> going on
> - While it matches our intuition, it does *not* match what's actually
> going on,
> so that's a con.
> - Idris notation can lift things more than once:
> do return $ f !!a !b !!!!c
> - Idris notation is syntactic sugar, not a first-class operator
> - So that means no currying, no passing it in as an argument, etc. (though
> with lambdas this is not as bad as it otherwise would be)
> - Idris notation is for monads, so it would not work for things that are
> applicative but not monads (though I'm not entirely sure what falls into
> this
> category)
>
> What do you y'all think? Do they operate in different enough spaces that
> they
> should both exist (like applicatives and moands), or is one clearly better?
>
> --Taeer
>
> _______________________________________________
> Haskell-Cafe mailing list
> To (un)subscribe, modify options or view archives go to:
> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
> Only members subscribed via the mailman list are allowed to post.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20170131/7275d2dc/attachment.html>
More information about the Haskell-Cafe
mailing list