> Am 06.06.2016 um 19:43 schrieb Tim Vermeulen via swift-evolution > <swift-evolution@swift.org>: > > 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`.
That's a good argument! The only drawback is that `while` and `where` look quite similar at a glance. -Thorsten > >> `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 _______________________________________________ swift-evolution mailing list swift-evolution@swift.org https://lists.swift.org/mailman/listinfo/swift-evolution