
I'm not sure what you mean by "abstract function". It's a function like any
other function.
But otherwise you're right. :)
-- Lennart
On 9/22/07, PR Stanley
Ah, I understand now. Let me get this right: The resulting (a -> c) is a kind of abstract function formed by the pairing of b) and (b -> c), hence the lambda \x -> g (f x), correct? Thanks, Paul
At 05:11 22/09/2007, you wrote:
Hello,
It's probably easiest to think of composition as a function which takes two arguments (both functions), (g :: b -> c) and (f :: a -> b), and returns a new function of type a -> c. We could write this explicitly as
composition :: (b -> c, a -> b) -> a -> c composition (g,f) = \x -> g (f x)
then (.) is the currying of composition:
(.) = curry composition
or
(.) g f = \x -> g (f x)
-Jeff
On 9/21/07, PR Stanley
wrote: Hi (.) :: (b -> c) -> (a -> b) -> (a -> c) While I understand the purpose and the semantics of the (.) operator I'm not sure about the above definition. Is the definition interpreted sequentially - (.) is a fun taht takes a fun of type (b -> c) and returns another fun of type (a -> b) etc? Any ideas? Thanks, Paul
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe