脑弄大开之——如何抛弃数字和运算符号只用计算机和函数进行运算

来源:互联网 发布:香港旅游 知乎 编辑:程序博客网 时间:2024/05/17 07:44

脑洞大开

很久很久以前,有个叫阿隆佐·邱奇的帅哥,发现只需要用函数,就可以用计算机实现运算,而不需要0、1、2、3这些数字和+、-、*、/这些符号。

JavaScript支持函数,所以可以用JavaScript用函数来写这些计算。来试试:

'use strict';// 定义数字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) {        return function (x) {            return m(f)(n(f)(x));        }    }}
// 计算数字2 = 1 + 1:var two = add(one, one);// 计算数字3 = 1 + 2:var three = add(one, two);// 计算数字5 = 2 + 3:var five = add(two, three);// 你说它是3就是3,你说它是5就是5,你怎么证明?// 呵呵,看这里:// 给3传一个函数,会打印3次:(three(function () {    console.log('print 3 times');}))();// 给5传一个函数,会打印5次:(five(function () {    console.log('print 5 times');}))();
原创粉丝点击