The ES6 iteration protocol
Axel Rauschmayer
axel at rauschma.de
Mon Apr 6 21:41:13 UTC 2015
There are two different aspects:
1. If you get an iterable, it sometimes matters whether iteration restarts when you ask the iterable for an iterator.
2. Self-iterability is how iterators turn themselves into iterables so that constructs that work with iterables can be used. It also enables generators to play two roles: generator methods can implement `[Symbol.iterator]` and generator functions can implement iterable-returning functions.
In this particular case, I’m interested in #1. I probably have to come up with a better term for it.
> On 06 Apr 2015, at 23:30, Dmitry Soshnikov <dmitry.soshnikov at gmail.com> wrote:
>
> Exactly, that's what I tried to explain. Since in one case it considers just an iterable (an array), and in other case -- an iterator (which is by "coincidence" is also an iterable). But an array's iterator is an iterable as well, and also always returns itself for iterator protocol.
>
> Yeah, the "self-iterable" makes much more sense in this case.
>
> Dmitry
>
> On Monday, April 6, 2015, Allen Wirfs-Brock <allen at wirfs-brock.com <mailto:allen at wirfs-brock.com>> wrote:
>
> > On Apr 6, 2015, at 2:23 PM, Dmitry Soshnikov <dmitry.soshnikov at gmail.com <javascript:;>> wrote:
> >
> > I guess all built-in iterators return themselves for `Symbol.iterator` protocol. So they are all "singletons". I described in detail where confusion/substitution of concepts happens in that analysis in the recent two comments.
> >
>
> I don’t think “singleton” is the correct term for the concept that Axel is trying to describe. A “singleton” is normally an kind of object for which there is only a single instances. There may be many instances of, for example %ArrayIterator%, so it isn’t correct to call %ArrayIterator% a singleton
>
> What Axel is describing might be characterized as “self iterable”, it returns itself when recieving a Symbol.iterator request.
>
> Allen
>
> _______________________________________________
> es-discuss mailing list
> es-discuss at mozilla.org
> https://mail.mozilla.org/listinfo/es-discuss
--
Dr. Axel Rauschmayer
axel at rauschma.de
rauschma.de
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20150406/d362d969/attachment.html>
More information about the es-discuss
mailing list