On 30 Aug 2011, at 14:30, Tudor Girba wrote: > And I even have a semantic reason: > - A Block represents a piece of functionality that can be evaluated with some > input > - A Symbol often represents a selector which in turns represents a piece of > functionality that can be evaluated with some input. > > From this point of view, they have similar responsibilities and we should be > able to treat them the same.
It feels as if this is only the case when the first argument is also the receiver, no ? | adder | adder := [ :x :y | x + y ]. adder value: 1 value: 2. #+ value: 1 value: 2 1 perform: #+ with: 2 Note that the last two expressions are equally short/concise, the second being clearer. Here things become weirder, don't you agree: | creator | creator := [ :x :y | Rectangle origin: 0@0 corner: x@ y ]. creator value: 10 value: 20. #origin:corner: value: Rectangle value: 0@0 value: 10@20 Rectangle perform: #origin:corner: with: 0@0 with: 10@20 Maybe we need more good example of where this would make real sense ? Sven
