<br><br><div class="gmail_quote">On Thu, Sep 10, 2009 at 14:43, Peter Verswyvelen wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div class="im">

On Thu, Sep 10, 2009 at 11:47 AM, Roman Cheplyaka wrote:<br>
&gt;  step x g a = g (f a x)<br>
&gt;<br>
&gt; is, thanks to currying, another way to write<br>
&gt;<br>
&gt;  step x g = \a -&gt; g (f a x)<br>
<br>
</div>I thought currying just meant<br>
<br>
curry f x y = f (x,y)<br>
<br>
<br>
Isn&#39;t the reason that<br>
<br>
f x y z = body<br>
<br>
is the same as<br>
<br>
f = \x -&gt; \y -&gt; \z -&gt; body<br>
<br>
just cause the former is syntactic sugar of the latter?<br>
<div><div></div><div class="h5"></div></div></blockquote><div><br>In some functional programming languages, these are not equivalent. For example, Clean does not have currying, so<br><br>  f :: Int Int -&gt; Int<br>  f x y = x + y<br>

<br>is not the same as <br><br>  f :: Int -&gt; Int -&gt; Int<br>  f x = (+) x<br><br>Notice the difference in types. The first is more like &#39;f :: (Int, Int) -&gt; Int&#39; in Haskell.<br><br>Sean<br></div></div>