Last active
October 20, 2017 04:15
-
-
Save mashirozx/3149f879115e591c895bb4a601a10a91 to your computer and use it in GitHub Desktop.
一个计算器
This file contains hidden or 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
// 定义数字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'); | |
}))(); | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment