
Nope, I'm asking why um . IntMap.elems . IntMap.IntersectionWith (\x y -> x*y) queryVector rationalProjection won't work. On Tuesday 06 March 2007 15:14, Jeff Polakow wrote:
haskell-cafe-bounces@haskell.org wrote on 03/06/2007 02:43:03 PM:
Usually, I can do this, but today, my brain is weak, and I'm just trying
to
get this piece of code out the door. My code looks like this:
weight = sum (IntMap.elems (IntMap.intersectionWith (\x y -> x*y) queryVector rationalProjection))
I know that this will work (ignoring indentation):
sum $ IntMap.elems $ IntMap.intersectionWith (\x y -> x*y) queryVector rationalProjection
But why won't this?:
sum . IntMap.elems . IntMap.IntersectionWith ...
Is there a difference between the "elegance" of function composition
versus
application?
I assume your really asking why something like:
(*) $ 2 $ 3
won't work? If so, the reason is that $ associates to the right. So you should write:
((*) $ 2) $ 3
If not, could you give the full expression which doesn't work?
-Jeff
---
This e-mail may contain confidential and/or privileged information. If you are not the intended recipient (or have received this e-mail in error) please notify the sender immediately and destroy this e-mail. Any unauthorized copying, disclosure or distribution of the material in this e-mail is strictly forbidden.