Changchun Master Li

有序对的js实现

2016-12-01

有序对的作用是存储两个值,并在之后根据需要再次提供

1
2
3
PAIR = -> x { -> y { -> f { f[x][y] } } }
LEFT = -> p { p[ -> x{ -> y { x } }] }
RIGHT = -> p { p[ -> x{ -> y { y } }] }

(摘自《计算的本质,深入剖析程序和计算机 Understanding ComputationFrom Simple Machines to Impossible Programs》)

读第一遍的时候对这几行Ruby代码很不理解,就模仿写了一段JavaScript

1
2
3
PAIR = function(x){return function(y){ return function(f){ return f(x)(y) } }}
LEFT = function(p){return p(function(x){return function(y){ return x }})}
RIGHT = function(p){return p(function(x){return function(y){ return y }})}

使用

1
2
my_pair = PAIR(3)(5)
LEFT(my_pair)
使用支付宝打赏
使用微信打赏

若你觉得我的文章对你有帮助,欢迎点击上方按钮对我打赏

扫描二维码,分享此文章