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 <[email protected]> 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/ > >
