Currying: Difference between revisions

Content added Content deleted
No edit summary
(added Mathematica imkplementation)
Line 259: Line 259:
(funcall (curry #'+/2 10) 10)
(funcall (curry #'+/2 10) 10)
</lang>
</lang>

=={{header|Mathematica}}==

Currying can be implemented by nesting the <code>Function</code> [[Mathematica]] keyword. The following method curries the <code>Plus</code> function.

In[1]:= plusFC = Function[{x},Function[{y},Plus[x,y]]];

A higher currying function can be implemented straightforwardly.

In[2]:= curry = Function[{x}, Function[{y}, Function[{z}, x[y, z]]]];

Output:

In[3]:= Plus[2,3]
Out[3]:= 5

In[4]:= plusFC[2][3]
Out[4]:= 5

In[5]:= curry[Plus][2][3]
Out[5]:= 5


=={{header|ML}}==
=={{header|ML}}==