Many useful finite generators will not know their length ahead of time, so this would be a poor way to detect finiteness.<br><br><div>Infinite generators will always create many hazards of non-termination if provided to contexts expecting finite generators. Similarly looped data structures, if provided to contexts expecting acyclic data structures. For the latter, at least it can be detected (as JSON.stringify does).</div>
<div><br></div><div>While we could try to create nominal subtypes FiniteIterator and InfiniteIterator so that iterators can declare their alleged intent, IMO this is overengineering for a rare case. And provides no guarantees anyway. I think we should just live with the non-termination danger. We've been doing so for all other sources of non-termination since Turing ;).<br>
<div><br></div><div><br><div class="gmail_quote">On Wed, Feb 15, 2012 at 7:48 AM, Dean Landolt <span dir="ltr"><<a href="mailto:dean@deanlandolt.com">dean@deanlandolt.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br><br><div class="gmail_quote"><div class="im">On Tue, Feb 14, 2012 at 11:49 PM, Brendan Eich <span dir="ltr"><<a href="mailto:brendan@mozilla.org" target="_blank">brendan@mozilla.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


+1 on ... (spread) exhausting an iterator to expand the iterated values into positional parameters or initialisers.<br></blockquote><div><br></div></div><div>What about infinite generators? Punt on any iterators without a predefined length? Otherwise wouldn't there be some kind of exception akin to a stack overflow?</div>


</div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br>    Cheers,<br>    --MarkM<br>
</div></div>