<div dir="ltr"><div><div>Dear Yann,<br><br></div>The two options that you mentioned are indeed equivalent (the function application is much tighter that @), <br>but note that z would be a partial-like object.<br><br></div><div>Of course for this to work, not only the first function must be decorated with @composable, but also all multi-argument functions.<br> <br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On 6 May 2015 at 21:32, Yann Kaiser <span dir="ltr"><<a href="mailto:kaiser.yann@gmail.com" target="_blank">kaiser.yann@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><span class="">On Wed, 6 May 2015 at 09:10 Ivan Levkivskyi <<a href="mailto:levkivskyi@gmail.com" target="_blank">levkivskyi@gmail.com</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div>Dear Guido,<br><br></div>My original idea was to make the composable functions auto-curried (similar to proposed here <a href="http://code.activestate.com/recipes/52902-function-composition/" target="_blank">http://code.activestate.com/recipes/52902-function-composition/</a> as pointed out by Steve) so that<br></div><br>my_fun = square @ add(1)<br>my_fun(x)<br><br>evaluates to <br><br></div>square(add(1,x))<br></div></blockquote><div><br></div></span><div>This breaks the (IMO) fundamental expectation that</div><div><br></div><div> z = add(1)</div><div> my_fun = square @ z</div><div><br></div><div>is equivalent to</div><span class=""><div><br></div><div> my_fun = square @ add(1)</div><div><br></div></span><span class="HOEnZb"><font color="#888888"><div>-Yann</div></font></span></div></div>
</blockquote></div><br></div>