JavaScript とλ式の関係について書こうと思ったのですが、その前にクロージャについてお話しする必要があることに気付きました。 僕が最初にクロージャという言葉を知ったのは、大学の学部生のときです。Lisp の勉強をしていて出てきたのです。でも、まったく理解できませんでした。 これまで僕が主に使ってきた言語は、C や Emacs Lisp です。C では関数の中に関数を定義できないのでクロージャはありませんし、Emacs では動的スコープでクロージャはありませんから、クロージャに関する知識がなくても困りませんでした。それが、クロージャを本気で理解しなかった理由だと思います。 ここでは、JavaScript にとってクロージャが必要である例を示すことにしましょう。必要性が実感できれば、詳しく勉強しようという意欲が湧くはずだからです。 関数に static な変数 C言語には、関数に st