
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