<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#ffffff">
    On 10.07.2011 23:09, Dmitry A. Soshnikov wrote:
    <blockquote cite="mid:4E19F8F0.7060101@gmail.com" type="cite">
      <meta content="text/html; charset=ISO-8859-1"
        http-equiv="Content-Type">
      And by the way, an efficient `Array.prototype.unique` also would
      be nice to have, since in JS in general it's hard to implement
      it's efficiently (in lower level at least it will iterate faster).<br>
      <br>
      [1, 3, 2, 5, 5, 3].unique(); // [1, 3, 2, 5]<br>
      <br>
      Dmitry.<br>
      <br>
      On 10.07.2011 23:02, Dmitry A. Soshnikov wrote:
      <blockquote cite="mid:4E19F731.6040201@gmail.com" type="cite">
        <meta content="text/html; charset=ISO-8859-1"
          http-equiv="Content-Type">
        On 10.07.2011 22:44, Brendan Eich wrote:
        <blockquote
          cite="mid:7BDFBAD3-AFC0-4B8C-86B0-935D01F1E7F0@mozilla.com"
          type="cite">
          <div>
            <div>On Jul 10, 2011, at 10:40 AM, Dmitry A. Soshnikov
              wrote:</div>
            <br class="Apple-interchange-newline">
            <blockquote type="cite">
              <div text="#000000" bgcolor="#ffffff"> On 10.07.2011
                21:23, Brendan Eich wrote:
                <blockquote
                  cite="mid:D7215BCE-3CF6-427B-B937-8063CDCCC90F@mozilla.com"
                  type="cite">
                  <div>
                    <div>On Jul 10, 2011, at 10:18 AM, Rick Waldron
                      wrote:</div>
                    <br class="Apple-interchange-newline">
                    <blockquote type="cite">The more I think about it, I
                      still can't come up with any really exciting use
                      cases where <a moz-do-not-send="true"
                        href="http://Array.of/" type="url">Array.of</a> would



                      outshine anything that already exists. I say
                      strike it from the wishlist.<br>
                    </blockquote>
                    <div><br>
                    </div>
                    Higher-order programming with Array as
                    constructing-function bites back for the
                    single-number-argument case. That's where Array.of
                    helps.</div>
                  <div><br>
                  </div>
                </blockquote>
                <br>
                You mean when `Array` itself is passed as an argument?<br>
                <br>
                var o = (function (ArrayConstructor, ...rest) {<br>
                    return ArrayConstructor(...rest);<br>
                })(Array, 10, 20, 30);<br>
              </div>
            </blockquote>
            <div><br>
            </div>
            Yes. Now consider the case where you leave out the 20 and
            30.</div>
          <br>
        </blockquote>
        <br>
        return ArrayConstructor(rest[0]) ?<br>
        <br>
      </blockquote>
    </blockquote>
    <br>
    Ah, goddammit, sorry, I got it. Completely forgot about this case,
    even if myself just showed it before in Array(42).map example,
    thanks for mentioning. It will of course create array with length 10
    and with holes (some implementations, in particular V8 even
    pre-allocate these holes).<br>
    <br>
    So Array.of is just exactly and only for this use-case.<br>
    <br>
    Dmitry.<br>
    <br>
    <blockquote cite="mid:4E19F8F0.7060101@gmail.com" type="cite">
      <blockquote cite="mid:4E19F731.6040201@gmail.com" type="cite"> May
        I ask to show nevertheless how you want to apply here Array.of?<br>
        <br>
        P.S.: <br>
        <br>
        If this is a wish-list of extending standard array lib, we can
        consider also the following:<br>
        <br>
        - Array.prototype.remove(value, all)<br>
        <br>
        [1, 2, 3, 2].remove(2); // [1, 3, 2]<br>
        [1, 2, 3, 2].remove(2, true); // [1, 3]<br>
        <br>
        (seems this function is required more than Array.of, because at
        least I saw it implemented in all frameworks and used it
        myself).<br>
        <br>
        - Array.prototype.subtract(array)<br>
        <br>
        [1, 2, 3, 4].subtract([2, 4]); // [1, 3]<br>
        <br>
        - Array.seq(from, to)<br>
        <br>
        Array.seq(1, 5); // [1, 2, 3, 4, 5]<br>
        <br>
        - Array.min(array), Array.max(array) (can be implemented with
        Math.max/min and apply though)<br>
        <br>
        Array.min = (array) -> Math.min.apply(Math, array)<br>
        <br>
        - Array.prototype.split(n)<br>
        <br>
        ["a", "b", "c", "d", "e"].split(3) // [["a", "b", "c"], ["d",
        "e", "f"]]<br>
        <br>
        Perhaps even to build objects from lists of keys and values
        (this function is usually called as `zip`):<br>
        <br>
        - Object.fromLists(["a", "b", "c"], [1, 2, 3]); // {a: 1, b: 2,
        c: 3}<br>
        <br>
        Dmitry.<br>
      </blockquote>
      <br>
    </blockquote>
    <br>
  </body>
</html>