<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Tue, Jun 7, 2016 at 3:24 PM, Xiaodi Wu <span dir="ltr"><<a href="mailto:xiaodi.wu@gmail.com" target="_blank">xiaodi.wu@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">It may be workable if you can have only one or the other, but mixing and matching them as proposed above would be a world of hurt:<div><br><div>```</div><div>for foo in bar where condition1 while condition2 { ... }</div><div>```</div><div><br></div><div>If condition1 and condition2 both evaluate to true,</div></div></div></blockquote><div><br></div><div>s/true/false/</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div>then whether you continue or break would depend on the relative order of where and while; for generality, you would want to allow both `for...in...where...while` and `for...in...while...where`, and likely `for...in...while...where...while`, etc. There is nothing in the meaning of those words that would suggest that `while...where` behaves differently from `where...while`, etc. This is why words like "break" and "continue" are IMO far superior.<div><div class="h5"><br><div><br><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Jun 7, 2016 at 2:34 PM, Erica Sadun <span dir="ltr"><<a href="mailto:erica@ericasadun.com" target="_blank">erica@ericasadun.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><span><br><div><blockquote type="cite"><div>On Jun 7, 2016, at 1:16 PM, Tim Vermeulen via swift-evolution <<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a>> wrote:</div><br><div><div><blockquote type="cite">The meaning of the proposed while is not at all a pair for where, since where clauses in while loops would do the same thing as while clauses in for loops. That's crazy.<br></blockquote><br>It sounds crazy, but it’s the nature of the while loop. A where clause in a while loop also has a different result than a where clause in a for loop.<br></div></div></blockquote></div><br></span><div>The where_clause appears in the for in statement </div><div><br></div><div><div style="margin:0px;font-size:16px;line-height:normal;font-family:Menlo;color:rgb(0,132,0)"><span>for_in_statement : 'for' 'case'? pattern 'in' expression where_clause? code_block</span></div></div><div style="margin:0px;font-size:16px;line-height:normal;font-family:Menlo;color:rgb(0,132,0)"><span><br></span></div><div>It's syntactic sugar because the expression can be already be limited through functional chaining of some sort or another. At the same time, it's nice and pleasant to have `where` and I'm not itching to throw it out. The same courtesy could be easily extend to `when` (because I don't really want to use the `while` keyword here, but I could easily be convinced otherwise because I don't have a strong stance either way):</div><div><br></div><div><div><div style="margin:0px;font-size:16px;line-height:normal;font-family:Menlo;color:rgb(0,132,0)"><span>for_in_statement : 'for' 'case'? pattern 'in' expression (where_clause | when_clause)? code_block</span></div></div></div><div style="margin:0px;font-size:16px;line-height:normal;font-family:Menlo;color:rgb(0,132,0)"><span>when_clause : 'when' expression</span></div><div><span><br></span></div><div>and again it could be nice and pleasant to have, although not necessary. The question comes down to how much does the language benefit by this sugar.</div><div><br></div><div>I'd say that in both cases, combining chaining and statements is marginally <i>less good</i> than either using standalone chaining or statements without chaining. But as I say this, I know as a fact, I fully intend to use `sequence(_:, next:).take(while:)` with for0in statements, so I'm starting from a hypocritical vantage point.</div><div><br></div><div>To summarize, I'm more +0.01 than I am -0.01 on this.</div><span><font color="#888888"><div><br></div><div>-- E</div></font></span><div>p.s. Sorry, wux</div><div><br></div><div><br></div></div></blockquote></div><br></div></div></div></div></div></div></div>
</blockquote></div><br></div></div>