導入:クロージャーについて 昨今ではクロージャーを使えるプログラミング言語は珍しくなくなった。クロージャーとは、関数の引数だけではなく、外のスコープにある変数を参照できる関数のことである。 例えば、次のJavaScriptコードでは、関数を返す関数 f を定義している。 f の中で定義された無名関数は、外側の変数 x を参照できている。 function f(x) { return function(y) { return x + y; }; } JavaScriptではネストした関数を使わなくても、bindメソッドによって同等の処理を記述することができる: function g(x, y) { return x + y; } function f(x) { return g.bind(null, x); // gの第1引数を束縛する } 残念ながらC言語にはクロージャーはない。関数の中に