ClosureCompiler その2
(ここからの続き)
せっかく Squeak の Smalltalk でもクロージャが使えるようになったので、たしかこちらが元ネタのカウンターのサンプルなぞ、あらためて試してみました。
counterMaker counter1 counter2 |
=> 1 101 2 102 3 103 4 104 5 105 6 106 7 107 8 108 9 109 10 110
#compileBlocksAsClosures が off だと従来通り、
=> 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120
う〜む、すばらしい。で、#compileBlocksAsClosures を on/off しながら、たった今、気付いたんですが、Squeak の Smalltalk では、ブロック変数はもともと擬変数ではないんですね。
[: nn | nn := 10] value: 2
Squeak の場合(念のため Squeak1.13 で)
=> 10
ちなみに VisualWorks の場合
=> Attempt to store into argument
がーん。知らなかったよ… orz
(続く)