Allen Wirfs-Brock wrote:

On Feb 10, 2013, at 3:40 AM, Herby Vojčík wrote:
But I still think it is simpler to specify ".map" returning array,
always. You know you get an Array, you don't have to worry about magic
of Set, Map etc., if you wish to have it in other kind of container,
use Container.from(...).


But wouldn't you want:
var my16bitVector = Uint16Array.from([1,2,3,4,5,6]);
...
var y = my16bitVector.map(v=>v+1)
....
someExternalAPI(y);

to create a Uint16Array for y? It seems like the most common use cases
want to produce the same kind of elements. Mapping to a different or
broader kind of element is also common, but I think less common. So it's
the case that should take to more to express.

Well, here's the difference. Nearly every kind of .map use I remember (or `collect:` in Smalltalk, maybe I should not mix them but they are mixed in my mind) are transformation of the object: map objects to only some specific property, wrap collection of primitives to objects that are created from them, etc. I honestly can't remember any use of .map concept that preserves element types beyond educatory `(1 to: 10) collect: [ :x | x*x ]`.

That is, my conviction is, .map is mainly used for bigger transformations of its elements (I think your v=>v+1 example much more often happens in-place, that is, forEach; map use-case seems rare for me).

Allen

Herby
_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to