[swift-evolution] Change `repeat` to loop indefinitely if no while clause is present
Harlan Haskins
harlan at harlanhaskins.com
Tue May 10 16:13:56 CDT 2016
You could always do your control flow with goto’s anyway…
func foo() {
var i = 0
func goto(_ label: String = "entry") {
switch label {
case "entry":
print("beginning loop…")
goto("cond")
case "cond":
goto(i < 10 ? "body" : "end")
case "body":
i += 1
print("\(i)")
goto("cond")
case "end":
break
default: break
}
}
goto()
}
Apologies,
Harlan
> On May 10, 2016, at 2:05 PM, Taras Zakharko via swift-evolution <swift-evolution at swift.org> wrote:
>
> When I need a loop with complex control flow that does not fit into the classical while {} or repeat {} while structure, I use this:
>
> do_stuff: do {
> …
> continue do_stuff
> }
>
> This pattern explicit and allows very complex control flow patterns without the drawbacks of the unrestricted goto construct.
>
> Therefore I don’t see utility with having a repeat {} without while clause.
>
> Best,
>
> Taras
>
>
>> On 10 May 2016, at 22:39, Dominik Pich via swift-evolution <swift-evolution at swift.org> wrote:
>>
>>
>>>> On May 10, 2016, at 3:30 PM, Tyler Cloutier via swift-evolution <swift-evolution at swift.org> wrote:
>>>>
>>>> Secondly it’s a very simple way of introducing new programmers to loops. It’s IMHO more clear to a new programmer that repeat will just repeat indefinitely vs while true.
>>>
>>> This point seems strange to me - why teach a new programmer about loops by first showing them a looping construct they should probably never use in actual practice until they really know what they’re doing?
>> totally agree… it would be a bad first introduction, id say :)
>>
>> _______________________________________________
>> swift-evolution mailing list
>> 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/c5f4b132/attachment.html>
More information about the swift-evolution
mailing list