今回は、λ計算について少しやります。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 戻る |