<div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>From: Felipe Almeida Lessa &lt;<a href="mailto:felipe.lessa@gmail.com">felipe.lessa@gmail.com</a>&gt;<br>
To: <a href="mailto:sdiyazg@sjtu.edu.cn">sdiyazg@sjtu.edu.cn</a><br>Cc: <a href="mailto:haskell-cafe@haskell.org">haskell-cafe@haskell.org</a><br>Date: Mon, 19 Mar 2012 14:24:13 -0300<br>Subject: Re: [Haskell-cafe] Are there arithmetic composition of functions?<br>
import Control.Applicative<br>
<br>
f, g :: Float -&gt; Float<br>
f x = x + 1<br>
g x = 2 * x<br>
<br>
h = (+) &lt;$&gt; f &lt;*&gt; g<br>
<br>
<br>
Cheers, =)<br>
<br>
--<br>
Felipe.<br>
<br></blockquote><div><br></div><div>Monadic version:</div><div><br></div><div><div>import Control.Monad</div><div>import Control.Monad.Instances</div><div><br></div><div>(+.) :: Num a =&gt; (a -&gt; a) -&gt; (a -&gt; a) -&gt; a -&gt; a</div>
<div>(+.) = liftM2 (+)</div><div>(+..) :: Num a =&gt; (a -&gt; a -&gt; a) -&gt; (a -&gt; a -&gt; a) -&gt; a -&gt; a -&gt; a</div><div>(+..) = liftM2 $ liftM2 (+)</div><div>infixl 6 +., +..</div><div><br></div><div><br></div>
<div>&gt; (sin +. cos) (pi/4)</div><div>1.414213562373095</div><div>&gt;  ((*) +.. (/)) 4 2</div><div>10.0</div></div><div> </div><div>Deniok</div></div>