Last active
April 5, 2020 03:03
-
-
Save FranklinGuan/317c7308b817888a7eba41929a7e58be to your computer and use it in GitHub Desktop.
Calculating with Functions 5kyu-Codewars
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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