On 10.07.2011 22:44, Brendan Eich wrote:
On Jul 10, 2011, at 10:40 AM, Dmitry A. Soshnikov wrote:
On 10.07.2011 21:23, Brendan Eich wrote:
On Jul 10, 2011, at 10:18 AM, Rick Waldron wrote:
The more I think about it, I still can't come up with any really
exciting use cases where Array.of <http://Array.of/> would outshine
anything that already exists. I say strike it from the wishlist.
Higher-order programming with Array as constructing-function bites
back for the single-number-argument case. That's where Array.of helps.
You mean when `Array` itself is passed as an argument?
var o = (function (ArrayConstructor, ...rest) {
return ArrayConstructor(...rest);
})(Array, 10, 20, 30);
Yes. Now consider the case where you leave out the 20 and 30.
return ArrayConstructor(rest[0]) ?
May I ask to show nevertheless how you want to apply here Array.of?
P.S.:
If this is a wish-list of extending standard array lib, we can consider
also the following:
- Array.prototype.remove(value, all)
[1, 2, 3, 2].remove(2); // [1, 3, 2]
[1, 2, 3, 2].remove(2, true); // [1, 3]
(seems this function is required more than Array.of, because at least I
saw it implemented in all frameworks and used it myself).
- Array.prototype.subtract(array)
[1, 2, 3, 4].subtract([2, 4]); // [1, 3]
- Array.seq(from, to)
Array.seq(1, 5); // [1, 2, 3, 4, 5]
- Array.min(array), Array.max(array) (can be implemented with
Math.max/min and apply though)
Array.min = (array) -> Math.min.apply(Math, array)
- Array.prototype.split(n)
["a", "b", "c", "d", "e"].split(3) // [["a", "b", "c"], ["d", "e", "f"]]
Perhaps even to build objects from lists of keys and values (this
function is usually called as `zip`):
- Object.fromLists(["a", "b", "c"], [1, 2, 3]); // {a: 1, b: 2, c: 3}
Dmitry.
_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss