> So from this viewpoint (and regarding that example with squares), it's good > to have also `Array.seq(from, to)` method (the name is taken from Erlang, I > just frequently uses lists:seq(from, to) there):
<bikeshed>Array.range seems like an intuitive name as well.</bikeshed> > Array.seq(1, 5).map((x) -> x * x); [1, 4, 9, 16, 25] This pattern (integer range immediately followed by map) is so common that many Schemes have a more general function that fuses the two traversals, sometimes called build-list or list-tabulate: Array.build(n, f) ~~~ [f(0), ..., f(n-1)] Another common and useful fusion of two traversals that's in many Schemes is map-filter or filter-map: a.filterMap(f) ~~~ [res for [i,x] of items(a) let (res = f(x, i)) if (res !== void 0)] I rather arbitrarily chose to accept both null and undefined here as way to say "no element" -- a reasonable alternative would be to accept *only* undefined as "no element". Dave _______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss