<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Isn’t Swift too young to have any sort of established dialect? Removing everything takes away from an organic process of discovering what the dialect will be. Instead we are shoehorning a dialect in the early stages of swift when a lot hasn’t even been established yet.<div class=""><br class=""></div><div class="">Maybe the mistake is trying to fit all these breaking changes into Swift 3. I think it is just too much for such a young language that is still trying to find itself.</div><div class=""><br class=""></div><div class=""><div class=""><br class=""></div><div class="">Brandon</div></div><div class=""><br class=""></div><div><blockquote type="cite" class=""><div class="">On Jun 10, 2016, at 2:41 PM, Xiaodi Wu via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" style="font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><div class="gmail_extra"><div class="gmail_quote">On Fri, Jun 10, 2016 at 1:14 PM, Ryan Lovelett<span class="Apple-converted-space">&nbsp;</span><span dir="ltr" class="">&lt;<a href="mailto:swift-dev@ryan.lovelett.me" target="_blank" class="">swift-dev@ryan.lovelett.me</a>&gt;</span><span class="Apple-converted-space">&nbsp;</span>wrote:<br class=""><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204); padding-left: 1ex;"><u class=""></u><div class=""><div class="">@Xiaodi Wu a couple of times you've said things were "explicit" this or that.<br class=""></div><span class=""><div class="">&nbsp;<br class=""></div><div class="">&gt;&nbsp;<span style="background-color: rgb(255, 255, 255);" class=""><span style="color: rgb(31, 31, 31);" class=""><span style="font-family: 'Source Sans Pro', sans-serif;" class=""><span style="font-size: 14px;" class="">* 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 class=""></div><div class="">&nbsp;<br class=""></div></span><span class=""><div class="">&gt; That is worrying if true, because it suggests that it's enabling 'dialects' of Swift, an explicit anti-goal of the language<br class=""></div><div class="">&nbsp;<br class=""></div></span><div class="">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 class=""></div></div></blockquote><div class=""><br class=""></div><div class="">These have been gleaned from pronouncements from the core team here on this list. Unfortunately, it's not easy to search the archives. I'll give one example, but I've seen similar ideas repeated a few times. Obviously, they take place in the context of discussions about other features that are not exactly the same as this, so one can wonder how much they apply here. If they were exactly parallel situations, we wouldn't be having this discussion.</div><div class=""><br class=""></div><div class="">Chris Lattner's response to a proposal to adopt some Python-like syntax that you can use if you like, but don't have to if you don't (Dec. 6, 2015):</div><div class=""><br class=""></div><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204); padding-left: 1ex;"><span style="" class=""><br class=""></span>We're not interested in fragmenting<span class="Apple-converted-space">&nbsp;</span><b style="background-color: rgb(255, 255, 102);" class="">Swift</b><span class="Apple-converted-space">&nbsp;</span>into related-but-different<span class="Apple-converted-space">&nbsp;</span><b style="background-color: rgb(255, 255, 102);" class="">dialect</b>s.<br class="">-Chris</blockquote><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204); padding-left: 1ex;"><div class=""><div class=""></div><div class="">&nbsp;<br class=""></div><div class=""></div></div></blockquote><div class=""><br class=""></div><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204); padding-left: 1ex;"><div class=""><div class="">In trying to track that information down I read over&nbsp;<a href="https://swift.org/about/" target="_blank" class="">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 class=""></div><div class="">&nbsp;<br class=""></div><div class="">From the "Features" section:<br class=""></div><div class="">&nbsp;<br class=""></div><div class="">&gt;&nbsp;Fast and concise iteration over a range or collection<br class=""></div><div class="">&nbsp;<br class=""></div><div class="">Does this proposal enhance that feature? Does this proposal weaken that feature?<br class=""></div><div class="">&nbsp;<br class=""></div><div class="">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 class=""></div></div></blockquote><div class=""><br class=""></div><div class="">No, but I don't think it harms fast and concise iteration; hence, I argue that `where` is redundant.</div><div class="">&nbsp;</div><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204); padding-left: 1ex;"><div class=""><div class=""></div><div class="">&nbsp;</div><div class="">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" target="_blank" class=""></a><a href="https://gist.github.com/erica/dd5935eca0d5d06b046184f41d56dd04#confusion-of-use" target="_blank" class="">https://gist.github.com/erica/dd5935eca0d5d06b046184f41d56dd04#confusion-of-use</a>) it seems to me that the behavior of the `where` clause of the `while` was analogous to the now removed `if` behavior.<br class=""></div><div class="">&nbsp;</div><div class="">Therefore, if we are going to remove something lets remove the `where` clause from `while`.</div></div></blockquote><div class=""><br class=""></div><div class="">My understanding is that removal from `while` is also part of SE-0099 and already approved.</div><div class="">&nbsp;</div><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204); padding-left: 1ex;"><div class=""><div class="">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 class=""></div><div class="">&nbsp;</div><div class="">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></blockquote><div class=""><br class=""></div><div class="">I'll endeavor to change your mind :) FWIW, I'd be satisfied with reforming instead of removing `where` if doing so can clarify its meaning.&nbsp;</div></div><br class=""></div></div><span style="font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">_______________________________________________</span><br style="font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">swift-evolution mailing list</span><br style="font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><a href="mailto:swift-evolution@swift.org" style="font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">swift-evolution@swift.org</a><br style="font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><a href="https://lists.swift.org/mailman/listinfo/swift-evolution" style="font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">https://lists.swift.org/mailman/listinfo/swift-evolution</a></div></blockquote></div><br class=""></body></html>