Suppose you want a pair of mutually recursive functions.
They have to be able to name each other.
In languages like Python and Ruby, you can have
methods AND you can have named functions.�� In fact
Python had named functions before it had objects.
But in Smalltalk, you have methods, which cannot be
invoked without mentioning the receiver, and you
have blocks, which do NOT have a receiver of their
own.�� So you have to write
���� f := [:... | ... g value: ... ].
���� g := [:... | ... f value: ... ].
This also applies when f needs to call itself.
At this point, Smalltalk beginners are so used to seeing
blocks used directly as arguments that they use methods
instead.