Yeah, that's true, I've noticed that too. I guess it's on purpose but I have no idea. AFAIK you can't assign a new value to a parameter anywhere in the method not only when using blocks. Maybe it's not possible because there is not really a 'variable' but only a reference. So assigning a new value to the parameter would effectively override the reference. But don't trust me on this.... Cheers, Max On 28.11.2010, at 10:54, laurent laffont wrote:
Sorry
foo: n ^[:i| n := n+i. ]
vs
foo: n |s| s := n. ^[:i| s := s+i. ]
Laurent
On Sun, Nov 28, 2010 at 10:51 AM, Max Leske <maxleske@gmail.com> wrote: In the first example you didn't declare 's':
foo:n ^ [ :i || s | s:= s+i ]
Or did I misunderstand the question?
Cheers, Max
On 28.11.2010, at 10:30, laurent laffont wrote:
Hi,
I can't write
foo: n ^[:i| s := s+i. ]
but
foo: n |s| s := n. ^[:i| s := s+i. ]
Why ?
Cheers,
Laurent Laffont
Pharo Smalltalk Screencasts: http://www.pharocasts.com/ Blog: http://magaloma.blogspot.com/