[js] 函数嵌套实现数字间运算

#test

seven(times(five())); // must return 35
four(plus(nine())); // must return 13
eight(minus(three())); // must return 5
six(dividedBy(two())); // must return 3

#

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;
    };
}

#

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;
    };
};

#

 

转载于:https://www.cnblogs.com/qingmingsang/articles/5320545.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值