<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body><div>@Xiaodi Wu a couple of times you've said things were "explicit" this or that.<br></div>
<div>&nbsp;<br></div>
<div>&gt;&nbsp;<span class="highlight" style="background-color:rgb(255, 255, 255)"><span class="colour" style="color:rgb(31, 31, 31)"><span class="font" style="font-family:&quot;Source Sans Pro&quot;, sans-serif"><span class="size" style="font-size:14px">* Swift is explicitly a C-family language. In most or all other C-family languages, for loop statements allow specification of conditions for exiting the loop but not for filtering. Therefore, Swift's use of `where` is unprecedented and needs to be learned anew by every user of Swift.</span></span></span></span><br></div>
<div>&nbsp;<br></div>
<div>&gt; That is worrying if true, because it suggests that it's enabling 'dialects' of Swift, an explicit anti-goal of the language<br></div>
<div>&nbsp;<br></div>
<div>Though I've never read either of these before as being goals (or for that matter anti-goals). Perhaps I'm looking in the wrong places though. Can you please share these with me?<br></div>
<div>&nbsp;<br></div>
<div>In trying to track that information down I read over&nbsp;<a href="https://swift.org/about/">https://swift.org/about/</a>&nbsp;trying to find if I could glean any information about some guiding principles. When I stumbled upon this and wondered if anyone else would find it illuminating.<br></div>
<div>&nbsp;<br></div>
<div>From the "Features" section:<br></div>
<div>&nbsp;<br></div>
<div>&gt;&nbsp;Fast and concise iteration over a range or collection<br></div>
<div>&nbsp;<br></div>
<div>Does this proposal enhance that feature? Does this proposal weaken that feature?<br></div>
<div>&nbsp;<br></div>
<div>I've thought about that for a little bit and I'm pretty sure that removing `where` from for in certainly does not enhance that feature from my perspective.<br></div>
<div>&nbsp;</div>
<div>If I understand everything this all started because `if` can no longer have `where`. &nbsp;Following that and basing it completely on the example in this proposal (<a href="https://gist.github.com/erica/dd5935eca0d5d06b046184f41d56dd04"><a href="https://gist.github.com/erica/dd5935eca0d5d06b046184f41d56dd04#confusion-of-use">https://gist.github.com/erica/dd5935eca0d5d06b046184f41d56dd04#confusion-of-use</a></a>) it seems to me that the behavior of the `where` clause of the `while` was analogous to the now removed `if` behavior.<br></div>
<div>&nbsp;</div>
<div>Therefore, if we are going to remove something lets remove the `where` clause from `while`. As is already correctly pointed out in the "confusion of use" section the outlier behavior was `for in`. We deprecated the `if` behavior because of [fill in the blank], forgive me I never read the arguments, if `while` works the same way why does it not logically follow that its `where` clause also be deprecated.<br></div>
<div>&nbsp;</div>
<div>With that as far as I'm concerned this proposal is just requesting the retirement of the `where` clause on the wrong loop structure. Of course more examples could change my mind.</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
</body>
</html>