Eliot Miranda wrote:
Thanks! Usage is building. I got the following classic bug from Lukas Renggli this a.m. (I don't have a fix yet)
| col | col := OrderedCollection new. 1 to: 11 do: [ :each | col add: [ each ] ]. col collect: [ :each | each value ])
answers #(12 12 12 12 12 12 12 12 12 12 12) instead of #(1 2 3 4 5 6 7 8 9 10 11).
(Sigh...)
I noticed that. It's optimized to:do: blocks. My first attempt at showing the difference between closure and context VM was:
1 to: 10 do:[:i| WorldState addDeferredUIMessage:[Transcript cr; show: i]. ].
And of course, that prints 11. If you change it to this:
(1 to: 10) do:[:i| WorldState addDeferredUIMessage:[Transcript cr; show: i]. ].
it works fine because to:do: is no longer optimized.
Cheers, - Andreas