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

Tyler Cloutier cloutiertyler at aol.com
Tue May 10 13:47:42 CDT 2016


> On May 10, 2016, at 12:39 AM, Xiaodi Wu via swift-evolution <swift-evolution at swift.org> wrote:
> 
> On Tue, May 10, 2016 at 2:27 AM, Nicholas Maccharoli via swift-evolution <swift-evolution at swift.org <mailto: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 don’t think the proposal is forbidding it, but rather making it optional. So that 

repeat {

} 

is equivalent to 

repeat {

} 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 <mailto:swift-evolution at swift.org>
> https://lists.swift.org/mailman/listinfo/swift-evolution <https://lists.swift.org/mailman/listinfo/swift-evolution>
> 
> 
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org <mailto:swift-evolution at swift.org>
> https://lists.swift.org/mailman/listinfo/swift-evolution <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/b50c75d5/attachment.html>


More information about the swift-evolution mailing list