<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On 1 February 2013 20:42, Martin Drautzburg <span dir="ltr">&lt;<a href="mailto:Martin.Drautzburg@web.de" target="_blank">Martin.Drautzburg@web.de</a>&gt;</span> wrote:<br>



<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hello all<br>
<br>
I frequently get confused over f . g vs f g. I do understand the following<br>
<br>
With:<br>
<br>
g :: a-&gt;b<br>
f :: b -&gt;c<br>
<br>
f.g :: a-&gt;c<br>
<br>
However<br>
<br>
f g<br>
<br>
is a type error, because then f would have to accept a function (a-&gt;b) as its<br>
first parameter, but it only accepts a b.<br>
<br>
Is there a way to easily remember when to use f.g and when to use f g without<br>
having to do this type algebra.<br></blockquote><div><br></div><div>If you&#39;re familiar with the analogous operations in mathematics (function composition and function application), it should be easy to reason about.<br>



<br></div><div>Function application is the act of &quot;calling&quot; the function: passing it an argument and making it &quot;return&quot; a result. In math, we write function application with parentheses, i.e. <br><br>

    cos(pi) <br>
<br>which &quot;returns&quot; (or /has value of/) -1. The equivalent in Haskell would be written simply as<br><br>    cos pi<br><br></div><div>Function composition on the other hand is the act of combining two functions (e.g. f1 and f2) so that the resultant function performs both operations in sequence. You can think of it as combining the functions in a pipeline so that the output of the first is passed as an argument to the second. Again, in mathematics, we&#39;d write the composition of f1 and f2 as<br>



<br>    f2 <span>∘ f1<br><br></span></div><div><span>In Haskell, we would write the same as<br><br></span></div><div><span>    f2 . f1<br><br>This is a good mnemonic for remembering the role of (.) since the dot looks a bit like the small circle used for functional composition in mathematics.<br>



</span></div><div><br></div></div>-- <br>Denis Kasak
</div></div>