[Haskell-beginners] ($) operator

Frank Schwidom schwidom at gmx.net
Sun Jan 25 09:25:03 EST 2009


On Sat, Jan 24, 2009 at 07:37:29PM +0000, John Hartnup wrote:
> Hi.
> 
> I'm working through Real World Haskell, and although it's going well
> (I just finished the exercise to write a glob matcher without using a
> regex library, and I'm pleased as punch), I keep seeing the ($)
> operator, and I'm not sure I understand its use. If the book explains
> it, I've been unable to find it.
> 
> Empirically, it seems like:
> a $ b c d e f
> .. is equivalent to ..
> a (b c d e f)
> 
> But is that it's only purpose? To placate the LISP haters by removing
> parentheses?
> 
> (1 +) 2  does the same thing as (1 +) $ 2, and has the same type.
> 
> Am I missing something?
> 
> Thanks,
> John

I made some Examples for better understanding:

 -- creating an $ like function:

 f g x = (g x)

 -- some tests comparing $ with f:

 5 == ($ 2) (+ 3)

 5 == (`f` 2) (+ 3)

 5 == (\x -> (($) x 2)) (+ 3)

 5 == (\x -> (f x 2)) (+ 3)

Regards


More information about the Beginners mailing list