[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).
More information about the Self-interest