On Sat, Mar 19, 2011 at 2:40 AM, DougEdmunds <dougedmunds@gmail.com> wrote:
It was pointed out that given an instance method MyClass >> doSomething that MyClass do: [:each | each doSomething]. can be expressed as MyClass do: #doSomething.
The reasons is this: check the #do: implementation and you will see all it does is to send #value:. But who says that only BlockClosure cna understand #value: ? Indeed, Symbol DOES UNDERSTAND value: ;) and it is: Symbol >> value: anObject ^anObject perform: self. So.....a selector is a Symbol.... Check this thread: http://forum.world.st/OffTopoc-Symbol-understands-value-nice-hehehehehhe-td3... Now...whether it is cool to use it or not, it is another question. FOr iterating collections I would always use the normal approach. cheers Mariano
Can someone suggest something to read that explains the usage of # here (#doSomething), the relation of methods to symbols, etc.
Trying to wrap my head around it. Thanks.
-dae
-- View this message in context: http://forum.world.st/Method-expressed-as-symbol-used-as-argument-tp3388864p... Sent from the Pharo Smalltalk mailing list archive at Nabble.com.