<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Tony Morris wrote:<br>
<br>
<pre wrap="">&gt; is the same as:
&gt; (.) :: (b -&gt; c) -&gt; ((a -&gt; b) -&gt; (a -&gt; c))
&gt; ..
&gt; "accepts a function a to c and returns a function. The function returned
&gt; takes a function a to b and returns a function a to c"
</pre>
IMO, that should be<br>
<pre wrap="">"accepts a function b to c and returns a function. The function returned
takes a function a to b and returns function a to c"
</pre>
Personally I also find the following a good explanation, since it does
not introduce lambdas or other scary things for newbies.<br>
<br>
<tt>f . g = composite <br>
&nbsp;&nbsp;&nbsp; where </tt><tt>composite</tt><tt> x = f (g x)<br>
</tt><br>
for example<br>
<br>
<tt>printLn = putStrLn . show<br>
<br>
</tt>so <br>
<br>
<tt>printLn x<br>
&nbsp;&nbsp;&nbsp; <br>
</tt>becomes<br>
<br>
<tt>putStrLn (show x)<br>
<br>
</tt>Cheers,<br>
Peter<br>
<br>
<tt><br>
<br>
</tt>
<blockquote cite="mid:46F49CD8.3060608@tmorris.net" type="cite">
  <pre wrap="">-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Apply parentheses from the right.

So:
(.) :: (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c

is the same as:

(.) :: (b -&gt; c) -&gt; (a -&gt; b) -&gt; (a -&gt; c)

is the same as:
(.) :: (b -&gt; c) -&gt; ((a -&gt; b) -&gt; (a -&gt; c))

How you read that is up to you, but here is one way of reading it:

"accepts a function a to c and returns a function. The function returned
takes a function a to b and returns a function a to c"

The expression f(g(x)) in C-style languages is similar to (f . g) x

Tony Morris
<a class="moz-txt-link-freetext" href="http://tmorris.net/">http://tmorris.net/</a>



PR Stanley wrote:
  </pre>
  <blockquote type="cite">
    <pre wrap="">Hi
(.) :: (b -&gt; c) -&gt; (a -&gt; b) -&gt; (a -&gt; 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 -&gt; c) and returns another fun of type (a -&gt; b) etc?
Any ideas?
Thanks, Paul

_______________________________________________
Haskell-Cafe mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Haskell-Cafe@haskell.org">Haskell-Cafe@haskell.org</a>
<a class="moz-txt-link-freetext" href="http://www.haskell.org/mailman/listinfo/haskell-cafe">http://www.haskell.org/mailman/listinfo/haskell-cafe</a>



    </pre>
  </blockquote>
  <pre wrap=""><!---->-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - <a class="moz-txt-link-freetext" href="http://enigmail.mozdev.org">http://enigmail.mozdev.org</a>

iD8DBQFG9JzXmnpgrYe6r60RAjDrAJ0SvkZHtNsctWNYHjqxjp9lnpNvgACfS/2r
9jwUvD29/ZMMot8x3/nvyI8=
=xSzA
-----END PGP SIGNATURE-----
_______________________________________________
Haskell-Cafe mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Haskell-Cafe@haskell.org">Haskell-Cafe@haskell.org</a>
<a class="moz-txt-link-freetext" href="http://www.haskell.org/mailman/listinfo/haskell-cafe">http://www.haskell.org/mailman/listinfo/haskell-cafe</a>


  </pre>
</blockquote>
<br>
</body>
</html>