<div dir="ltr">2016-06-18 10:23 GMT+02:00 Dmitri Gribenko <span dir="ltr">&lt;<a href="mailto:gribozavr@gmail.com" target="_blank">gribozavr@gmail.com</a>&gt;</span>:<br><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Fri, Jun 17, 2016 at 12:37 PM, Svein Halvor Halvorsen<br>
&lt;<a href="mailto:svein.h@lvor.halvorsen.cc">svein.h@lvor.halvorsen.cc</a>&gt; wrote:<br>
&gt; Ok. Good to hear that I&#39;m not too far off :)<br>
&gt;<br>
&gt; Can you provide me with an example of a sequence type or two that has some<br>
&gt; map or other function that would benefit from an optimized wrapper? Or:<br>
&gt; under what circumstances would the stdlib implementation outperform mine?<br>
<br>
</span>Compare the default implementations of map() for Sequence and<br>
Collection.  In the Sequence case, we don&#39;t know the size of the<br>
resulting array, so we have to grow the resulting array as we pull the<br>
elements from the sequence.  In the case of running Collection.map()<br>
we know the final size from the count property.  In the case of Array<br>
we can do even better and eliminate a check (the _expectEnd()<br>
call).  However, certain collections where calculating the number of<br>
elements might be expensive, can opt into the Sequence behavior (e.g.,<br>
various string views); this is up to the designer of the specific<br>
collection.</blockquote><div><br></div><div>Is this a problem in reality? The map() on Sequence uses underestimatedCount to reserve capacity, and if the sequence wraps a collection type, underestimatedCount is presumably O(1) and returns the same value as count, non? </div></div></div></div>