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