2009/05/08

[JavaScript]無名関数の実行

WS0699

 

JavaScriptの無名関数(?)の実行についてさきほど初めて知ったことがあったので。

js>(function () { echo("hello"); })()
hello

こういう↑形で実行できる(無名関数を定義と同時に実行)ことは知っていたのですが、こういう形↓でもできるということは知りませんでした。

js>(function () { echo("hello"); }())
hello

つまりこういうこともできたり。

js>(function (f) { return f(); }(function (){ echo("hello");}))()
hello

 

ただそれだけのメモ。

 

これを知るきっかけはこちら。

にある、Y Combinatorらしきコード片。



function Y(le) {
return (function (f) {
return f(f);
}(function (f) {
return le(function (x) {
return f(f)(x);
});
}));
}



 



実行環境:





で紹介している、JavaScriptのシェル改良版を使っています。

0 件のコメント:

コメントを投稿