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

Tyler Cloutier cloutiertyler at aol.com
Tue May 10 15:33:36 CDT 2016


Furthermore, I also think it is a nice generalization of the 

do {

} 

syntax for scopes. I think it is quite intuitive that do executes a block once, and repeat executes it repeatedly.


> On May 10, 2016, at 1:09 PM, Erica Sadun via swift-evolution <swift-evolution at swift.org> wrote:
> 
> I do not see sufficiently measurable benefits to this proposal to add it to the language. 
> It's easy enough to roll your own `repeatForever` function with trailing closure.
> 
> I also want to thank you for bring it up on-list. Not every idea is right for Swift but it's
> always refreshing to see innovative thoughts added to the discussion. Please do not be 
> discouraged by the generally negative feedback on this particular idea.
> 
> -- Erica
> 
>> On May 10, 2016, at 1: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 
>> 
>> 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 { ... }`
>> 
>> 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
> 
> _______________________________________________
> 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/f377b5de/attachment.html>


More information about the swift-evolution mailing list