[Haskell-cafe] Syntax proposal for "reverse apply"/"pipeline apply" (flip ($))
Alexey Muranov
alexey.muranov at gmail.com
Wed Apr 16 22:25:00 UTC 2014
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.
More information about the Haskell-Cafe
mailing list