ちょっと困ったバグ発見
x++ が x = x + 1; と等価なので、ローカルコンテキストに代入されちゃった例。
kz> x = 1; > 5 times:{|| x++ puts; }; > 1 1 1 1 1
本来ならこうしたい。
kz> x = 1; > 5 times:{|| x++ puts; }; > 1 2 3 4 5
関数を渡された 5 オブジェクトが関数起動しているので、this が 5 になっちゃっている例。
kz> 5 times:{|| this puts; }; > 5 5 5 5 5
本来ならこうなってほしい。
kz> 5 times:{|| this puts; }; > #object: 1befab0 #object: 1befab0 #object: 1befab0 #object: 1befab0 #object: 1befab0