[swift-evolution] Change `repeat` to loop indefinitely if no while clause is present

Xiaodi Wu xiaodi.wu at gmail.com
Tue May 10 02:39:45 CDT 2016


On Tue, May 10, 2016 at 2:27 AM, Nicholas Maccharoli via swift-evolution <
swift-evolution at swift.org> wrote:

> ​Swift Evolution ​Community,
>
> Currently writing an infinite loop in swift looks either something like
> this:
>
>     while true {
>         if ... { break }
>         //...
>     }
>
> Or this:
>
>     repeat {
>         if ... { break }
>         //...
>     } while true
>
> But I think it might be best to change the syntax / behaviour of `repeat`
> to loop
> indefinitely if no trailing while clause is present:
>
>     repeat {
>         if ... { break }
>         //...
>     }
>
> while still allowing a trailing `while` clause as in:
>
>     repeat {
>         foo += bar
>     } while foo.count < limit
>

What is your motivation for this change?


> I also want to propose that it should be a compile time error to use
> single `Bool` constants as while loop conditions, so no more `while true {
> ... }` it would become `repeat { ... }`
>

What problems are solved by forbidding `while true`?


> I was thinking of drafting a short proposal if there was enough positive
> feedback.
>
> How does it sound?
>
> - Nick
>
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20160510/f1355fb4/attachment.html>


More information about the swift-evolution mailing list