Andreas Rossberg wrote:
On 12 June 2013 23:27, Claude Pache<[email protected]>  wrote:
Therefore, I think that "For/of coerces its argument to an iterator" is a wrong mental 
model, and "For/of accepts either a reusable iterable or a disposable iterator" is a 
better one. And the implicit invocation of `@@iterator` is better thought as 
Get-the-snark-I-need-for-doing-my-work, than as Coerce-to-a-disposable-object. (And the fact that 
iterators are also non-reusable iterables is an implementation detail that don't disturb my mental 
model, because I don't care, thanks to generators.)

In other words, you want to program with iterables. That is a
perfectly reasonable thing to want. But unfortunately, with the
current intermingled protocol, there is no particularly useful
contract of what an iterable actually does (i.e., where the state
goes).

No, the contract is perfectly useful and minimal. An array is iterable, it has @iterator.

  Consequently, if you want to write abstractions, you will
likely be better off basing them on iterators, and leave iterables as
a mere convenience mechanism for for-of loops over concrete objects.

This does not follow. It flies in the face of boatloads of experience with JS and Python (itertools and beyond).

I guess we are going 'round the assertion block. I've seen that building before :-|.

/be
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to