In the "lens" package, this is (&) at infixl 1. In the "diagrams" package, this is (#) at infixl 8. You're certainly not the first to want this, but nobody can ever agree what it should be called or what fixity it should have. You can always just define it yourself.

-- Dan Burton


On Wed, Apr 16, 2014 at 3:25 PM, Alexey Muranov <alexey.muranov@gmail.com> wrote:
Hello,

i am completely new to Haskell, but i am somewhat fascinated by lambda-calculus and programming.

For whatever it is worth, i would like to propose for discussion a syntax for "(flip ($))" operation in Haskell.

I think that a good syntax would be "|^", for example:

    square x = x * x
    y = 3 |^ square             -- y == 9


Explanation:

* i would have suggested just ^, but it would conflict with number exponentiation,

* it is rather common in mathematics to write function application in exponential notation:  x ^ f  instead of  f(x), especially if  f  is an automorphism of some structure,

* (flip ($)) is exactly the exponentiation of Church numerals,

* in "The calculi of lambda-conversion", Alonzo Church uses the "shorthand" notation "[N^M]" for "(MN)", where M and N are lambda-terms.

* I am probably not the only person missing the ability to apply functions from the right:
http://stackoverflow.com/questions/1457140/haskell-composition-vs-fs-pipe-forward-operator

Well, other notations i've thought of are "\^" and "~$".

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