<div style="white-space:pre-wrap">This is useful information.<br><br>I disagree that this is silly as a priority. IMO, this is something that really needs to be tackled (if ever) in conjunction with Swift 3. Past this point, the ship will have sailed in terms of churn in fundamental syntax.<br><br>We want to leave the language with a thoughtfully designed grammar that will stand the test of time. Two of the most impressive elements of the Swift ethos (for me) have been an attention to the needs of learners and a determination that as much as possible we are designing One Swift and not many dialects.<br><br>If a syntax for expressing a straightforward feature presents a speed bump on the learning curve, I think it absolutely behooves us to think carefully about its persistence, especially at this juncture where something can be done about it. It may seem trivial to the experienced user, and probably any person who finds their way to this list is unaffected by the learning curve and long ago forgot what it was like to learn programming for the first time, but one of those things I was so impressed by upon joining this community was its attentiveness to fostering those that will come after.<br><br>So yes, if we do this right, in five years&#39; time no one will remember this discussion. The result of it will hopefully be a more thoughtful syntax that fits with initial user expectation.<br></div><br><div class="gmail_quote"><div dir="ltr">On Fri, Jun 10, 2016 at 12:13 Ryan Lovelett 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><div>On Fri, Jun 10, 2016, at 11:49 AM, Erica Sadun via swift-evolution wrote:<br></div>
<blockquote type="cite"><div> <br></div>
<div><blockquote type="cite"><div>On Jun 10, 2016, at 9:24 AM, Erica Sadun &lt;<a href="mailto:erica@ericasadun.com" target="_blank">erica@ericasadun.com</a>&gt; wrote:<br></div>
<div> <br></div>
<div><div style="word-wrap:break-word"><div> <br></div>
<div><blockquote type="cite"><div>On Jun 10, 2016, at 9:22 AM, Erica Sadun via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a>&gt; wrote:<br></div>
<div> <br></div>
<div><div style="word-wrap:break-word"><div> <br></div>
<div><blockquote type="cite"><div>On Jun 10, 2016, at 8:02 AM, Xiaodi Wu via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a>&gt; wrote:<br></div>
<div> <br></div>
<div><div dir="ltr"><div>On Fri, Jun 10, 2016 at 7:18 AM, Haravikk <span dir="ltr">&lt;<a href="mailto:swift-evolution@haravikk.me" target="_blank">swift-evolution@haravikk.me</a>&gt;</span> wrote:<br></div>
<div><div><blockquote style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div style="word-wrap:break-word"><div><div> <br></div>
<blockquote type="cite"><div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px" dir="ltr"><div><div><div><span>* The word &quot;where&quot; does not consistently imply `break` or `continue`. In current Swift, `where` implies `break` in the context of a `while` loop and `continue` in the context of a `for` loop. Some users intuitively guess the correct meaning in each context, while others guess the wrong meaning. Therefore, the only way to learn for sure what `where` means in any context is to read the rulebook. That, by definition, means that this is unintuitive.</span><br></div>
</div>
</div>
</div>
</div>
</blockquote><div> <br></div>
<div> <br></div>
<div>This is an argument for renaming the where keyword on for loops to be more clear, or to somehow integrate continue/break to be more explicit about what the developer intends for it to do.<br></div>
</div>
</div>
</blockquote><div> <br></div>
<div>Sure: I conclude that the keyword should be *either* removed *or* reformed; both outcomes could address the issue.<br></div>
</div>
</div>
</div>
</div>
</blockquote><div> <br></div>
<div>This is my stance as well and I reserve the right to flit between both choices until we&#39;ve fully talked it through.<br></div>
</div>
<div> <br></div>
<div>One more data point. <br></div>
<div> <br></div>
<div>In the standard library there are just under 950 uses of &quot;for in loops&quot;. There are 3 uses of &quot;for in while&quot; :<br></div>
<div> <br></div>
<div><div><span style="font-family:Menlo">private/StdlibUnittest/StdlibUnittest.swift.gyb:    for j in instances.indices where i != j {</span><br></div>
<div><span style="font-family:Menlo">public/core/Algorithm.swift:  for value in rest where value &lt; minValue {</span><br></div>
<div><span style="font-family:Menlo">public/core/Algorithm.swift:  for value in rest where value &gt;= maxValue {</span><br></div>
<div> <br></div>
<div>-- Erica<br></div>
</div>
</div>
</div>
</blockquote></div>
<div>Actually a slight correction to that. I forgot to add the space after &quot;in&quot; on the first search. It&#39;s just over 600 and 3. Among the 600 are a few false positives but not many.<br></div>
<div> <br></div>
<div>-- E<br></div>
</div>
</div>
</blockquote></div>
<div>And to follow-up to myself once again, I went to my &quot;Cool 3rd Party Swift Repos&quot; folder and did the same search. Among the 15 repos in that folder, a joint search returned about 650 hits on for-in (again with some false positives) and not a single for-in-while use.<br></div>
</blockquote><div> <br></div>
</div><div><div>I have access to 3 closed-source enterprise applications, iOS 9 and 100% Swift 2.2. Each of them respectively have one &quot;for in loop&quot;; each one makes use of a &quot;where&quot; clause.<br></div>
<div> <br></div>
<div>Two of the applications are maintained/written by someone other than myself. I wanted to audit them to see if those developers used &quot;for in&quot; correctly or incorrectly; indeed they were all correctly used to filter an Array. Though I cannot rule out they did not stumble into correct use of the `where` clause.<br></div>
<div> <br></div>
<div>More food for thought. Looking at the Git history I realized one of them actually was refactored from something that looked like:<br></div>
<div> <br></div>
<div>let a = [3, 1, 2].sort()<br></div>
<div>a.filter({ $0 &lt;= 2 }).forEach({ print($0) })<br></div>
<div> <br></div>
<div>to<br></div>
<div> <br></div>
<div>let a = [3, 1, 2].sort()<br></div>
<div>for i in a where i &lt;= 2 { print(i) }<br></div>
<div> <br></div>
<div>I&#39;m reasonably confident when I say the developers of this code have never heard of swift-evolution let alone participated in it.<br></div>
<div> <br></div>
<div>Obviously this is anecdotal evidence. It could be that `where` clause is &quot;easy to understand&quot; _or_ equally likely that our hiring process does a great job of selecting a heterogenous population of developers with certain backgrounds that lead to similar code when faced with similar problems.<br></div>
<div> </div>
<div>You know what strikes me about this whole argument? &quot;[This argument] is like a rocking chair: it gives [us] something to do but [does not get us] anywhere&quot;. - Someone Else<br></div>
<div> </div>
<div>If this is an example of the pressing/priority issues facing the Swift language today then I say lets all take a long weekend to bask in the glow of this momentous occasion. Then meet back here in 2 years.<br></div>
<div> </div>
<div>Change it or do not change it. I do not imagine it matters either way in 5 years. That having been said though I do think this argument, and others similar to it, are important because I think they run deeper than the syntax. I think they speak to the ethos of this community. With that I think we should think long and hard about this process and what it speaks to in terms of precedence and our collective priorities.<br></div></div><div>
<div> <br></div>
<blockquote type="cite"><div> <br></div>
<div>-- E<br></div>
<div><u>_______________________________________________</u><br></div>
<div>swift-evolution mailing list<br></div>
<div><a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a><br></div>
<div><a href="https://lists.swift.org/mailman/listinfo/swift-evolution" target="_blank">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br></div>
</blockquote><div> <br></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>