multiple return values... like ruby

anders elo anders at kaerus.com
Fri Jan 4 02:16:29 PST 2013


Thank you guys, I somehow missed that vital piece of information...
Right after I sent the proposal I read Brendans blog post from October and found the info regarding returning arrays. Sorry for the noise. :) 
I'll read the specs more thoroughly and get back if I have any more concerns. 

Anyhow I'll just drop my remaining top wishes for JS.
1) To have something like a static var for prototypes (or private if you prefer OO terminology).
2) Polymorphic functions, same name different signatures. Erlang matchers are cool btw.
3) keep it simple and clean looking (not like C++ or Java). Code should be readable / self documenting.  

That's about it!

cheers!

  



On Jan 4, 2013, at 6:51 AM, Brendan Eich wrote:

> Anton Kovalyov wrote:
>> See here: http://wiki.ecmascript.org/doku.php?id=harmony:destructuring and https://developer.mozilla.org/en-US/docs/JavaScript/New_in_JavaScript/1.7#Destructuring_assignment_%28Merge_into_own_page.2Fsection%29
> 
> Right -- here are inline examples:
> 
> function pair(x, y) { return [x, h]; }
> let [x, y] = pair(3,4);
> 
> This can be done without allocation with an optimization from Scheme implementations, where the JIT looks into the continuation and sees the destructuring of a fresh array result, and avoids creating a temporary array just to pull it apart.
> 
>> Anton
>> 
>> 
>> On 3 January 2013 07:26, anders elo <anders at kaerus.com <mailto:anders at kaerus.com>> wrote:
>> 
>>    I'd like to propose the incorporation of multiple return values
>>    into the ES standard.
>> 
>>    function foo(){
>>      return 1,2,3;
>> 
> 
> Note that this is not backward compatible because JS inherited the comma operator from C (unlike Java -- recessive gene skipped a generation :-P).
> 
> /be
> 
>>    }
>> 
>>    let (a,b,c) = foo();
>> 
>>    let (a,b) = foo(); // ignore c
>> 
>>    let (a,...b) = foo() // a = 1, b = [2,3]
>> 
>>    /* also useful for asynchronous functions returning a promise */
>>    let (response,headers) = yield
>>    getAjaxData("http://some.host.com/data");
>> 
>>    Thanks! ;)
>> 
>>    Vänliga hälsningar / Best regards
>>    Anders Elo @ kaerus.com <http://kaerus.com>
>> 
>> 
>> 
>> 
>>    _______________________________________________
>>    es-discuss mailing list
>>    es-discuss at mozilla.org <mailto:es-discuss at mozilla.org>
>>    https://mail.mozilla.org/listinfo/es-discuss
>> 
>> 
>> _______________________________________________
>> es-discuss mailing list
>> es-discuss at mozilla.org
>> https://mail.mozilla.org/listinfo/es-discuss
> 





-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20130104/500a5ffe/attachment.html>


More information about the es-discuss mailing list