[Haskell-cafe] Composition Operator

PR Stanley prstanley at ntlworld.com
Sat Sep 22 10:30:16 EDT 2007


Ah, I understand now. Let me get this right:
The resulting (a -> c) is a kind of abstract function formed by the 
pairing of <a -> 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 <prstanley at ntlworld.com> 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 at haskell.org
> > http://www.haskell.org/mailman/listinfo/haskell-cafe
> >



More information about the Haskell-Cafe mailing list