I also considered `until`, but it would be a bit confusing that `where` makes 
sure a condition is met, while `until` makes sure the condition isn’t met. I 
think `while` makes more sense because it corresponds to `break` in the same 
way that `where` corresponds to `continue`.

>`while`, to me, actually reads like it should do what `where` does.

To me, `while` reads like it should stop the loop once the condition isn’t met, 
just like in a while loop.

> I hadn't thought about `while` in this regard but wouldn't `until` make more 
> sense? `while`, to me, actually reads like it should do what `where` does. In 
> any case, whether it is `while` or `where`, this seems like a reasonable 
> feature in my opinion.
> 
> TJ
> 
> On Mon, Jun 6, 2016 at 5:15 AM, Tim Vermeulen via 
> swift-evolution<swift-evolution@swift.org(mailto:swift-evolution@swift.org)>wrote:
> > We can already use a where clause in a for loop like this:
> > 
> > for element in array where someCondition(element) {
> > // …
> > }
> > 
> > which basically acts like
> > 
> > for element in array {
> > guard someCondition(element) else { continue }
> > // …
> > }
> > 
> > Sometimes you want to break out of the loop when the condition isn’t met 
> > instead. I propose a while clause:
> > 
> > for element in array while someCondition(element) {
> > // …
> > }
> > 
> > which would be syntactic sugar for
> > 
> > for element in array {
> > guard someCondition(element) else { break }
> > …
> > }
> > 
> > I can see this particularly being useful if we have a sorted array and we 
> > already know that once the condition isn’t met, it won’t be met either for 
> > subsequent elements. Another use case could be an infinite sequence that we 
> > want to cut off somewhere (which is simply not possible using a where 
> > clause).
> > _______________________________________________
> > swift-evolution mailing list
> > swift-evolution@swift.org(mailto:swift-evolution@swift.org)
> > https://lists.swift.org/mailman/listinfo/swift-evolution
> 
> 
> 
_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to