A short derivation:

An obvious solution is: Use a lambda abstraction:

  appPair
(\x -> (x b) * velocityC) (cos,sin)

or (using function composition)

  appPair ((* velocityC) . (\x -> x b)) (cos,sin)

or (explictly using the application operator $):

  appPair ((* velocityC) . (\x -> x $ b)) (cos,sin)

Now the lambda abstraction can be removed

  appPair ((* velocityC ) . ($ b)) (cos,sin)


Regards,
 David


Am 01.12.2012 23:31, schrieb Christopher Howard:
Can application of an expression (to a function) be treated like a
function itself? In my specific case, I started with this expression:

code:
--------
(cos b * velocityC, sin b * velocityC)
--------

But I have a compulsive hatred of duplication. I happened to have this
function handy called appPair:

code:
-------
appPair f (a, b) = (f a, f b)

appPair (* velocityC) (cos b, sin b)
-------

Better, but the b identifier is still duplicated. Is there some way I
could have...

code:
--------
appPair (?) (cos, sin)
--------

...shifting the application of b into the (* velocityC) expression,
without modifying my appPair function?



_______________________________________________
Beginners mailing list
Beginners@haskell.org
http://www.haskell.org/mailman/listinfo/beginners