Em 18/01/2010 14:59, Lukas Renggli < [email protected] > escreveu:

>  The point  is Pharo  finally has real  closures and  sane execution
> semantics.  The same  semantics  that all  other Smalltalk  dialects
> already had  for decades, and  the same semantics that  Lisp, Scheme
> and even Javascript programmers trusted on in the last 40 years.

I agree with the sane semantics w.r.t. closures.  However, Turba's post:

> > Em 16/01/2010 23:07, Tudor Girba <[email protected]> escreveu:

> > > I have a method that takes OBCommands and returns Actions:
> > > 
> > > actionsFrom: aCollectionOfOBCommandClasses on: aTarget for: aRequestor
> > > | command |
> > > ^ aCollectionOfOBCommandClasses collect: [ :each |
> > > command := each on: aTarget for: aRequestor.
> > > GLMAction new
> > > icon: command icon;
> > > title: command label;
> > > action: [:presentation | command execute ];
> > > yourself
> > > ]
> > > 
> > > These actions have a block that will be executed at a later time. The
> > > problem here was that the command in the action block was always
> > > pointing to the same command object, even at each point the command
> > > variable was populated correctly.
> > > 
> > > However, when the command is defined inside the block, everything
> > > works as expected.
> > > 

Makes me think the method would be work invariably of the position of
the variable command (which is temporary for the method), because I
see this analogous to (pls bear with me that in order to simplify the
example I'm probably missing something!):

temp :=  1000.
#(99 17 1 2 3 4 5 0 6 7 8 9) do: [:ea | temp := temp min: ea].

which after execution leaves temp with zero.
   

>  The previous block semantics  on Pharo (and Squeak) were completely
> broken.  The 'average  Smalltalker' had  to understand  how contexts
> were setup and how the source is compiled to bytecode to explain the
> numerous  hacks that  were required  for example  in get  the blocks
> behave sanely in Seaside. This  is no longer necessary. The 'average
> Smalltalker' can just read the wikipedia page on closures.
>

OK about that!

I'm obviously missing something, but perhaps being able to read this mailing 
only at night and tired is not helpin'!!

[]s

--
Cesar Rabak

_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to