Re: ん?
javascriptってfor文がスコープ作らないってこと?
http://d.hatena.ne.jp/nagaShima/20090119/p3
というより var 宣言された変数が全部メソッドスコープにバインドされちゃうという感じです。
kuzha も同じように、変数テーブルは今までメソッド1つにつき必ず1つだったので、下のようなコードが動いちゃってました。
for i in 0..9 do ; end i puts; // -> 9
ついで
調べようとしてKuzhaのコード見てビビッた。なんであんなに小さく出来るの?
http://d.hatena.ne.jp/nagaShima/20090119/p3
幾つかポイントがありまして、
- 型情報などは一切扱わない
- kuzha の挙動を決定する CodeGenerator.java にカオス度が集約している
- kuzha で書けるコードは、java でも同じくらいの長さで書ける
for i in 0..9 do i puts; end
for(KuzhaObject t: KzList.newRange(0, 9)) { local.setSlot("i", t); KuzhaObject obj = local.getSlot("i"); Operator.getSlotValue(obj, "puts").call(obj); }
などなど。
自分はあまり大規模なプログラムを組んだことが無いので、必然的にあまり複雑な機能を持たないプログラム言語 (=kuzha) が出来た、という仕組みなわけです。