javascript 闭包应用, 阿隆佐·邱奇想法——计算机实现运算,而不需要0、1、2、3这些数字和+、-、*、/这些符号。

本文通过具体的JavaScript代码示例介绍了闭包的概念,并演示了如何使用闭包实现数字的加法运算。文中还提到了阿隆佐·邱奇对算法理论的贡献。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

javascript 闭包

阿隆佐·邱奇(Alonzo Church,1903年6月14日-1995年8月11日)是美国数学家,1936年发表可计算函数的第一份精确定义,对算法理论的系统发展做出巨大贡献。邱奇在普林斯顿大学受教并工作四十年,曾任数学与哲学教授。1967年迁往加利福尼亚大学洛杉矶分校。 ——百度百科

参考廖雪峰博客的闭包模块

/*
* // 闭包
*/ 

// 定义数字0:
var zero = function (f) {
    return function (x) {
        return x;
    }
};

// 定义数字1:
var one = function (f) {
    return function (x) {
        return f(x);
    }
};

// 定义加法:
function add(n, m) {
    return function (f) { //add f
        return function (x) { // f console
            return m(f)(n(f)(x));
        }
    }
}

//定义乘法
function multi(n, m){

}

// 0
(zero(function () {
    console.log('print 0 times');
}))();

// 1
(one(function () {
    console.log('print 1 times');
}))();

// 计算数字2 = 1 + 1:

var two = add(one, one);

// 计算数字3 = 1 + 2:
var three = add(one, two);

// 计算数字5 = 2 + 3:
var five = add(two, three);

//如何证明上述加法成立2传一个函数,会打印2次:
(two(function () {
    console.log('print 2 times');
}))();

// 给3传一个函数,会打印3次:
(three(function () {
    console.log('print 3 times');
}))();

// 给5传一个函数,会打印5次:
(five(function () {
    console.log('print 5 times');
}))();

然而关于减法,乘法和除法的推算我没能扩展不来。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值