Hi,

> There are some situations when you can only pass a variable referring
> to a function; with a curry function you can pass a variable that
> refers to a function + arguments.

That is not a big problem with annonymous functions:

takingAFunction(function(a){return mycallback(5,a)});

That is more elaborate but also more flexible than currying:

takingAFunction(function(a){return mycallback(a,5)});

With currying you only get the first variant - at least with weakly typed 
languages like JavaScript. With strongly typed languages you run into the 
same problem, when two parameters have the same type (pseudocode):

float function mycallback(float a, float b) { return a/b; }

mycallback(42) must produce something equivalent to 

float function(float b) { return mycallback(42,b); }

Currying doesn't give you 

float function(float a) { return mycallback(a,42); }

Christof

Reply via email to