Sorry for the resend. Meant to include the list. I like this idea a lot! However, what would be the correct behavior of a method like 'every' on an infinite generator?
-Michael A. Smith On Fri, Feb 3, 2012 at 3:54 PM, Domenic Denicola <dome...@domenicdenicola.com> wrote: > ES5's existing array extras make working with arrays a joy. > > However, sometimes arrays are not the right tool for the job. Perhaps you > want lazy evaluation semantics (generators). Or perhaps you want to > communicate that the list is immutable (compare .NET's `IEnumerable<T>` or > Java's `Iterable<T>`). ES Harmony seems to have the answer: iterators! Like > `IEnumerable<T>` or `Iterable<T>`, they are the most basic primitive of > iteration. Yay! > > But, if my `fetchAllProducts()` method returns an iterator, I don't get my > array extras. Sad. > > --- > > This may be solvable in library-space, but the iterator proposal doesn't seem > to have an Iterator.prototype I could extend. So we end up with unfortunate > underscore-style wrappers: > > _(iterator).chain().map(mapper).some(predicate).value() > _.some(_.map(iterator, mapper), predicate) > > I propose adding the array extras to any iterator (in some way), such that we > can have syntax similar to the following: > > iterator.map(mapper).some(predicate) // returns an iterator > > The methods I would like to see are: > * every, filter, forEach, map, reduce, reduceRight, some > * Optionally: join, toString > * Controversially: sorted, reversed (non-mutating versions of sort and > reverse) > > What do you think? > > -Domenic > _______________________________________________ > es-discuss mailing list > es-discuss@mozilla.org > https://mail.mozilla.org/listinfo/es-discuss > _______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss