第51回
今回は、λ計算について少しやります。Wikipedia
(λx.x+2)3について
コード1
function Test1(){
	var r=(function(x){return x+2})(3);
	alert(r);
}
(λf.f3)(λx.x+2)について
function Test2(){
	var r=(function(f){return f(3)})(function(x){return x+2});
	alert(r);
}
λxy.x-yとλx.(λy.x-y)について
function Test3(){
	var r1=function(x,y){return x-y};
	var r2=function(x){return (function(y){return x-y})};
	alert(r1(7,2));
	alert(r2(7)(2));
}
λxy.y xと比較してλy.y(λx.y)とλz.z(λx.y)について
var y=4;
function Test4(){
	var t1=function(y){return y(function(x){return y})};
	alert(t1(function(p){return p})(3));
	var t2=function(z){return z(function(x){return y})};
	alert(t2(function(p){return p})(3));
}
JavaScriptにおいてTest4の結果が出る、というのは少し驚くべきことじゃないかと思います。
JavaScriptの新たな一面を垣間見たような気になるわけでもないですが。
top  戻る