Re: [Haskell-cafe] Function composition questions from a newbie

This doesnt. But why?
Back to the definition of function composition: f . g is possible if g returns a value that's compatible with f's argument. Now, let's check the type of square and add3: square :: Num a => a -> a add3 :: Num a => a -> a -> a -> a (square . add3 1 2) is actually seen by the compiler / interpreter as (square . (add3 1 2)) due to precedence of . operator. So, what's the type of add3 1 2? add3 :: Num a => a -> a Hmm... seems compatible with square. what about (square . add3) 1 2? It doesn't work since add3, when curried (arguments of square "blended" with add3's) with 1 argument becomes: add3 :: Num a => a -> a -> a which is a function that accepts 2 arguments and it's not compatible with square's a. -- View this message in context: http://old.nabble.com/Function-composition-questions-from-a-newbie-tp2657020... Sent from the Haskell - Haskell-Cafe mailing list archive at Nabble.com.
participants (1)
-
leledumbo