On 7 Dec 2008, at 04:30, George Pollard wrote:

This is a little bit random, but I was just wondering if anyone knew
where the $ low-precedence parenthesis-eliminating application operator
originated. The Haskell Report doesn't mention anything, and I can't
search for "$" on Google. So... who thought it up? Does it originate in
an earlier language, or is it uniquely Haskellish? :)

As for the operator itself, it appears in Alonzo Church, "The Calculi of Lambda-Conversion", where it is written as exponentiation, like x^f, or typographically as
     f
    x

One can define operators
  a ^ b := b(a)          -- Application in inverse.
  (a * b)(x) := b(a(x))  -- Function composition in inverse.
  (a + b)(x) := a(x) * b(x)
  O(x) := I              -- Constant function returning identity.
  I(x) := x              -- Identity.
and use them to define lambda calculus (suffices with the first four; Church reverses the order of "*").

Then on Church's natural number functionals, these are just the expected natural number operations.

  Hans


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

Reply via email to