Suggestion:
instead of this:
<code>
function add (a,b,c){
if (arguments.length < this.add.length) {
return curry(this.add,arguments,this);
}
return a+b+c;
}
</code>
we could have something like:
<code>
function add (a,b,c) {
return curry(arguments, 3, function (x,y,z) {
return a+b+c;
};
}
</code>
which is arguably simpler and cleaner. However, one extra closure is used.. maybe it makes it more complicated for some?
But, overall, pretty clear and interesting article :o