askoh wrote:
| block | block := [:i | Transcript cr; show: i]. 1 to: 10 do: [:i | block value: i+1]
The above should print ten times. But it only prints the
five even numbers.
That is a bug isn't it?
Aik-Siong Koh
More of a "known limitation" than a bug... due to the fact that squeak does not have proper closures.
try
| block | block := [:j | Transcript cr; show: j]. 1 to: 10 do: [:i | block value: i+1]
Keith
I was going to say that, but why does it work using (1 to: 10) do: rather than 1 to: 10 do:, seems related to #to:do: being inlined?
Ramon Leon http://onsmalltalk.com