Skip to content

Instantly share code, notes, and snippets.

@richardscarrott
Last active April 1, 2016 17:36
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save richardscarrott/5ae0341ee9c4ef5296deef6dcf17e4f3 to your computer and use it in GitHub Desktop.
Save richardscarrott/5ae0341ee9c4ef5296deef6dcf17e4f3 to your computer and use it in GitHub Desktop.
function add(val = 0, ...args) {
let sum = args.reduce((prev, curr) => {
return prev + curr;
}, val);
let ret = add.bind(this, sum);
ret.value = () => sum;
ret.add = ret;
return ret;
}
console.log(add(1, 2).value() === 3);
console.log(add(1, 2)(3).value() === 6);
console.log(add(2, 3, 4)(5)(4, 6).value() === 24);
console.log(add(2, 3, 4)(5).add(4,6).value() + 5 === 29);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment