(function(foo){ foo(); })(function(){ (function(x){ (function(bar){ bar(); print(x + x); })(function(){ (function(x){ print(x + x); })(1); }); })(10); }); ふざけた外観をしてるけれど、このコードは静的スコープによって説明できる。 元ねたは@eseharaの変数のスコープを意識することについて、Lisp周辺とClojureのletを利用して考える - Line 1: Error: Invalid Blog('by Esehara' )。素晴らしい記事なので、みなさん読むべき。 練習問題 代入文を使った式を=なしの形式に変換してみよう。 あとがき このコードを理解できれば、一部のプログラミング言語に存在するlet式1をマスターできたと友達に自