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


Reply via email to