[self-interest] arguments and assignment

Jecel Assumpcao Jr jecel at merlintec.com
Tue May 1 21:20:05 UTC 2001

On Tuesday 01 May 2001 02:27, Toby Everett wrote:
> Why is perform:With:With:With: no longer acceptable? 

Well, my proposal was to generate argument names automatically from the 
keyword parts, so they would have to be all different. 
'performSelector:Arg1:Arg2:Arg3:' would work, though I wanted to avoid 
such unimaginative names.

> Doesn't that
> really mean that with should receive an array of objects?  And really
> mean that it should be possible to say perform:[With]:, which would
> be interpreted by the system to automatically match perform:With: and
> perform:With:With: and perform:With:With:With: and so forth, with all
> of them getting assigned to the array with?

That would be interesting. Self doesn't have a syntax for array 
literals, so you have to write

                  ( 1 & 3 & 9 & 11 ) asVector

where in Smalltalk you would have

                 #(1 3 9 11)

and so we have methods with different selectors for small numbers of 
arguments. Some Smalltalks have a different syntax for when you need an 
array of generic expressions instead of literals. I thought we also had 
one more selector in Self for accepting an array of arguments, but it 
seems we don't. You can send at most 5 arguments to a block, for 
example, and have at most 2 arguments with the perform primitive.

Anyway, I looked through the list of 1600 unique argument names (out of 
a total of 22,000 argument slots) and don't think my idea would cause 
any great hardship (if you don't consider incompatibility with what we 
have now as such).

-- Jecel

More information about the Self-interest mailing list