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