Welcome to my life...

Axel Rauschmayer <[email protected]> wrote:

>Ah damn, forgot about that discussion (combinatorial explosion etc.).
>
>
>On Dec 24, 2012, at 5:08 , Allen Wirfs-Brock <[email protected]> wrote:
>
>
>Won't work for an explicitly pass undefined because that triggers assignment 
>of the default value
>
>Axel Rauschmayer <[email protected]> wrote:
>
>How about the following solution?
>
>
>    let missingArgument = {}; // or a symbol
>
>    function reduce(callback, initial = missingArgument){
>
>        let startIndex;
>
>     
>
>        if (initial === missingArgument) {
>
>            initial = this[0];
>
>            startIndex = 1;
>
>        } else {
>
>            startIndex = 0;
>
>        }
>
>     
>
>        ...etc...
>
>    }
>
>
>On Dec 24, 2012, at 3:32 , Allen Wirfs-Brock <[email protected]> wrote:
>
>
>On Dec 23, 2012, at 5:35 PM, Brandon Benvie wrote:
>
>Here's one of the examples that was sticking out in my mind earlier that 
>Brendan's solution takes care of. Array.prototype.reduce requires that if the 
>initial value isn't provided then the first value of the array is the initial 
>value.
>
>Using rest:
>
>   function reduce(callback, ...initial){
>     var current, index;
>
>     if (initial.length) {
>       index = 0;
>       current = initial[0];
>     } else {
>       index = 1;
>       current = this[0];
>     }
>
>     ...etc...
>   }
>
>
>the way I would express this example  is:
>
>function reduce(callback, ...rest){
> var current, index;
> if (rest.length > 0) {
>       index = 0;
>       current = rest[0];
>     } else {
>       index = 1;
>       current = this[0];
>     }
> ...etc...
>}
>
>which seems to exactly express the intent
>
>
>-- 
>
>Dr. Axel Rauschmayer
>
>[email protected]
>
>
>home: rauschma.de
>
>twitter: twitter.com/rauschma
>
>blog: 2ality.com
>
>
>
>-- 
>
>Dr. Axel Rauschmayer
>
>[email protected]
>
>
>home: rauschma.de
>
>twitter: twitter.com/rauschma
>
>blog: 2ality.com
>
>
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to