The performance of stdlib methods is not fixed in stone.<br><br>And a language feature being undocumented wouldn&#39;t explain why the entire stdlib uses it only three times :)<br><div class="gmail_quote"><div dir="ltr">On Tue, Jun 14, 2016 at 1:42 AM Charlie Monroe via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><div><blockquote type="cite"><div dir="auto"><div>I used to do low latency java for trading systems... the kind of coding where we would go out of our way to avoid ANY intraday gc activity (yes it can be done, even for parsing xml files). So we cared about a lot of things... But when you look at the numbers above on a 4_000_000 iterations loop and say the differential matters? I say you are probably using the wrong tools to write your code in the first place, and you should be using accelerate.</div></div></blockquote><div><br></div></div></div><div style="word-wrap:break-word"><div><div>Yes, I say it does matter. Of course, 4 million iterations is a fictional example that rarely occurrs on its own, but gives you an idea that there&#39;s more going on behind the scenes other than pure iteration.</div><div><br></div><div>You&#39;re looking at it from a point where one app does one thing and the loop will have just a few iterations. Try to look at it from a point where the entire OS, all the processes and kernel  are written in Swift (might be distant future, but Swift is heading that way, isn&#39;t it?).</div><div><br></div><div>In such case if each for-loop takes a few extra instruction, then - again - yes, it matters. I know we&#39;re not talking about all for-loops, just those filtering the sequence - which seems not that common of a case - but my point is valid, that Swift should provide easily-reachable means to be a &quot;good citizen&quot;. Removing it will lead developers to use .filter(_:) instead, in order to save lines of code and additional typing.</div><div><br></div><div>While many searches in open source code found a minimum usage of for-in-where, I think this is not due to it being confusing, but just not well known, otherwise it would be used a lot more. Most developers that have prior programming experience will only skim through the Language Guide itself, which doesn&#39;t mention that `where` can be used in for loops (!!!), or even while loops and there isn&#39;t a single example where it would be used.</div><div><br></div><div>Both</div><div><a href="https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/ControlFlow.html" target="_blank">https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/ControlFlow.html</a></div><div>and the ePub download on <a href="https://swift.org/documentation/#the-swift-programming-language" target="_blank">https://swift.org/documentation/#the-swift-programming-language</a></div><div><br></div><div>Maybe I&#39;m missing something, but the language guide only mentions `where` for the switch-case scenario. So the argument (which floated around here) that this is not being actively used is kind of moot since how could anyone be using it since it&#39;s not properly documented and no one who doesn&#39;t closely watch release notes can possibly know about this.</div></div></div><div style="word-wrap:break-word"><div><div><br></div><br><blockquote type="cite"><div dir="auto"><div><br></div><div>As for the &#39;</div><br><blockquote type="cite"><div><span></span><br><span>I&#39;ve previously noted that if/guard-continue come in really close speed-wise, which makes them candidates for a fix-it in case `where` is indeed removed.</span><br><span></span><br><span>My response here was solely to Jean-Daniel&#39;s note that he mustn&#39;t forget to include the lazy accessor, pointing out that even the lazy accessor is slower than using an inline check.</span><br><span></span><br><span></span><br><blockquote type="cite"><span></span><br></blockquote><blockquote type="cite"><span>-- </span><br></blockquote><blockquote type="cite"><span>Brent Royal-Gordon</span><br></blockquote><blockquote type="cite"><span>Architechies</span><br></blockquote><blockquote type="cite"><span></span><br></blockquote><span></span><br></div></blockquote></div></blockquote></div></div>_______________________________________________<br>
swift-evolution mailing list<br>
<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a><br>
<a href="https://lists.swift.org/mailman/listinfo/swift-evolution" rel="noreferrer" target="_blank">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br>
</blockquote></div>