personnally I do not like this form
What does it do?
process ifNotNil: #terminate.
for me it means passes the symbol #terminate as argument to the method ifNotNil: If it has a more magical behavior then I do not know it.
Stef
It's exactly the same as using collection do: #something.
FWIW, in 1.2 we already included the compiler changes Levente suggested to me to remove this restriction, so
nil ifNotNil: #squared -> nil 4 ifNotNil: #squared -> 16.
This is still not really readable compared to 4 ifNotNil: [:rec | rec squared] For select: #even why not Now to me this looks like a hack and again it works because now Symbol are valuable objects. Too many hacks will only make the system more hackish. And especially the iftrue: 'foo' ifFalse: 'zork' In Smalltalk this is simple you ut bracket when you do not know if a part should/will be executed. Now with such change this is not the case anymore. I think that we are focusing on the wrong point. Changing the language that way does not bring anything really useful. And I would veto such usage in the core for consistency reason. Stef