[Newbies] Re: Defining a binary message selector
Michael Haupt
mhaupt at gmail.com
Sun Nov 15 22:25:41 UTC 2009
Hi Andy,
On Sun, Nov 15, 2009 at 11:19 PM, Andy Burnett
<andy.burnett at knowinnovation.com> wrote:
> The specific problem I am having is:
> If I define an Integer method such as
>
> <<<*** aNumber
>
> Squeak is quite happy to let me create it. However, if I do something
> like fib aNumber, the compiler complains that aNumber is a unknown
> variable, which I need to define.
this is simpler than you may have thought. :-)
It's all about syntaaaaaaaaaaaaaaaaaaax. If you want to implement the
method as a binary message (with special characters), everything is
fine - as you yourself noticed. But if you want to implement it as a
so-called keyword message (i.e., where the selector consists of
alphanumeric characters), you have to insert a colon (:) after each of
the keywords.
The solution would be not to write
fib aNumber
but
fib: aNumber
instead. That way, the parser knows where to look for parameters. ;-)
(((And if you have keyword messages with multiple parameters, use a
colon wherever a parameter needs to be placed, e.g., fib: aNumber fob:
anotherNumber fub: whatever - just browse the image to see how the
different things are done. But I assume you actually know that.)))
> So, what I was really trying to
> understand was what it was about the e.g. <<< symbol which allowed it to
> have an undeclared argument.
The argument to a binary message is not undeclared; the simple fact
that the message is binary *implies* there will be a parameter.
Am I making sense?
Best,
Michael
More information about the Beginners
mailing list