[Haskell-cafe] Origins of '$'

Hans Aberg haberg at math.su.se
Sun Dec 7 05:05:29 EST 2008


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




More information about the Haskell-Cafe mailing list