Function the Ultimate
by jacobwsmith
JavaScript
function identity(arg){
return arg;
}
//identity(3);
function add(x, y){
return x+y;
}
function mul(x, y){
return x*y;
}
//add(3, 4);
//mul(3, 4);
function identityf(x){
return function(){
return x;
};
};
//idf = identityf(3);
//idf(); // 3
function addf(x){
return function(y){
return x + y;
};
};
//addf(3)(4); // 7
function applyf(binary){
return function(x){
return function(y){
return binary(x, y);
};
};
};
addf = applyf(add);
addf(3)(4); // 7
console.log(applyf(mul)(5)(6)); // 30