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