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 <
[email protected]> 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
> [email protected]
> https://lists.swift.org/mailman/listinfo/swift-evolution
>
_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to