On 2007-12-21, at 00:39 EST, Brendan Eich wrote:

> On Dec 20, 2007, at 4:01 PM, Jeff Dyer wrote:
>
>> The original Netscape ES4 proposal had syntax for passing arguments  
>> as an
>> array. (Waldemar are you listening?) IIRC it used triple dots like  
>> this:
>>
>>   foo(...args)
>>
>> to mean use the elements of 'args' as positional arguments of foo. We
>> dropped this from AS3 for lack of evidence for its need.
>
> Wow. I like this, never saw it in Waldemar's proposals, but of  
> course Python and other languages have something akin. This is the  
> missing solution that satisfies the demand for compositional new and  
> apply, as well as other apply-like use-cases (see the thread on this  
> very list, inspired by Python, starting here).
>
> Presumably you could supply one or more positional actual parameters  
> before the "packed" parameter, as Python allows:
>
> >>> def foo(a,b,c):
> ...   print a,b,c
> ...
> >>> foo(1,2,3)
> 1 2 3
> >>> a = [1,2,3]
> >>> foo(*a)
> 1 2 3
> >>> b = [2,3]
> >>> foo(1,*b)
> 1 2 3
>
> This beats a super.apply special form any day!

Cute!  So ... is the 'spread' operator that spreads an array of  
arguments into a parameter list.

_______________________________________________
Es4-discuss mailing list
Es4-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es4-discuss

Reply via email to