Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save FranklinGuan/317c7308b817888a7eba41929a7e58be to your computer and use it in GitHub Desktop.
Save FranklinGuan/317c7308b817888a7eba41929a7e58be to your computer and use it in GitHub Desktop.
Calculating with Functions 5kyu-Codewars
function exp(num,op){
if(!op){return num}
return op(num)
}
function zero(op) { return exp(0,op) }
function one(op) {return exp(1,op)}
function two(op) {return exp(2,op)}
function three(op) {return exp(3,op)}
function four(op) {return exp(4,op)}
function five(op) {return exp(5,op)}
function six(op) {return exp(6,op)}
function seven(op) {return exp(7,op)}
function eight(op) {return exp(8,op)}
function nine(op) {return exp(9,op)}
function plus(x) { return (y)=>y+x }
function minus(x) { return (y)=>y-x }
function times(x) { return (y)=>y*x }
function dividedBy(x) { return (y)=>Math.floor(y/x) }
--------------------------------------------------------------------------------
//The best practice 1
var n = function(digit) {
return function(op) {
return op ? op(digit) : digit;
}
};
var zero = n(0);
var one = n(1);
var two = n(2);
var three = n(3);
var four = n(4);
var five = n(5);
var six = n(6);
var seven = n(7);
var eight = n(8);
var nine = n(9);
function plus(r) { return function(l) { return l + r; }; }
function minus(r) { return function(l) { return l - r; }; }
function times(r) { return function(l) { return l * r; }; }
function dividedBy(r) { return function(l) { return l / r; }; }
--------------------------------------------------------------------------------
//The best practice 2
function zero(func) { return func ? func(0) : 0; };
function one(func) { return func ? func(1) : 1; };
function two(func) { return func ? func(2) : 2; };
function three(func) { return func ? func(3) : 3; };
function four(func) { return func ? func(4) : 4; };
function five(func) { return func ? func(5) : 5; };
function six(func) { return func ? func(6) : 6; };
function seven(func) { return func ? func(7) : 7; };
function eight(func) { return func ? func(8) : 8; };
function nine(func) { return func ? func(9) : 9; };
function plus( b ) { return function( a ) { return a + b; }; };
function minus( b ) { return function( a ) { return a - b; }; };
function times( b ) { return function( a ) { return a * b; }; };
function dividedBy( b ) { return function( a ) { return a / b; }; };
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment