If we're adding applicative brackets, it would be nice to have something like ⦇⦈ as options via UnicodeSyntax. When playing around with She, I found it much easier to read than the ASCII version, especially when I needed to combine them:

    (|(|a + b|) + (|c * d|)|)
    ⦇⦇a + b⦈ + ⦇c * d⦈⦈

Coincidentally, She is the perfect way to experiment with idiom brackets while thinking about a patch like this. I found it very illustrative just to go through old code and see what could really be improved and what couldn't. For me personally, I certainly found *some* code became more readable, but not quite as much as I expected.


On Thu, Aug 15, 2013 at 10:44 AM, Anton Nikishaev <me@lelf.lu> wrote:
Simon Peyton-Jones <simonpj@microsoft.com> writes:

> |  Indeed, I wished the 0-ary case would be more alike to the unary
> |  and binary case, cf.
> |
> |     return f0
> |     f1 <$> a1
> |     f2 <$> a1 <*> a2
> |
> |  What is needed is a nice syntax for "idiom brackets".
>
> Indeed.  I'm quite open to adding idiom brackets to GHC, if everyone
> can agree on their syntax, and someone would like to offer a patch.
>
> Something like
>       (| f a1 a2 |)
> perhaps?

I can make a patch after people agree on everything.

There's also http://hackage.haskell.org/package/applicative-quoters with
its template haskell nastiness

h> :m +Control.Applicative.QQ.Idiom
h> :set -XQuasiQuotes
h> [i| (,) "THX" "BYE" |]
[('T','B'),('T','Y'),('T','E'),('H','B'),('H','Y'),('H','E'),('X','B'),('X','Y'),('X','E')]



--
lelf


_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe