Skip to content

Instantly share code, notes, and snippets.

@mxriverlynn
Last active June 23, 2016 16:18
Show Gist options
  • Save mxriverlynn/23454502de93bb44ce3a34811010c97b to your computer and use it in GitHub Desktop.
Save mxriverlynn/23454502de93bb44ce3a34811010c97b to your computer and use it in GitHub Desktop.
bind vs curry
function add(a, b){
return a + b;
}
var add1 = add.bind(undefined, 1);
add1(2) // => 3
// take 1 param
function add(a){
// take a second param
return function(b){
// do the final work, with all params
return a + b;
}
}
var add1 = add(1);
add1(2) // => 3
function addMultiple(a, b, c, d, e){
return a + b + c + d + e;
}
var add1 = addMultiple.bind(undefined, 1);
var add2 = add1.bind(undefined, 2);
var add3 = add2.bind(undefined, 3);
var add4 = add3.bind(undefined, 4);
console.log(add4(5)); // => 15
var r = require("ramda");
var curriedAdd = r.curry(function(a, b, c, d, e){
return a + b + c + d + e;
});
var add1 = curriedAdd(1);
var add2 = add1(2);
var add3 = add2(3);
var add4 = add3(4);
console.log(add4(5)); // => 15
var add10 = addMultiple.bind(undefined, 1, 2, 3, 4)
var curriedAdd10 = curriedAdd(1)(2)(3)(4);
console.log(add10(5)); // => 15
console.log(curriedAdd10(5)); // => 15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment