I do not see how this is more readable. The current for loop is perfectly readable and conveys the intent very well IMO: it executes a code block FOR every ELEMENT that is IN a SEQUENCE. In contrast, I find your proposal rather confusing: it combines a number of different constructions with different semantics and generally is less transparent.
Best, Taras > On 30 Mar 2016, at 21:54, Nathanial Burton-Bradford via swift-evolution > <[email protected]> wrote: > > Swift Control Flow using Loops > > One of Swifts strengths is clear, readable INTENT, conveyed by the languages > Keyword tokens. For anyone new to programming, clear, readable intent, goes a > long way in helping them master the language, by helping reduce > logical/semantic errors caused by a misunderstanding of the names used in > specifying the languages keyword tokens… > Swift’s control flow keywords can be ambiguous, in this respect, when > conveying the functional intent of loop control logic, within the language. > > I would like to open up discussion, therefore, regarding the possible > renaming of Swift’s control flow keywords, with the hope that this leads to > clearer INTENT regarding loops. > > > Replace For-In with Loop Using > > for foo in d…y > loop foo using d…y > > For x in 1…5 > loop x using 1…5 > > loop i=0 using i<10 > > loop i using 0..<10 > > > > For _ in 1 …power > ———-> > loop using 1…power > > “The underscore character (_) used in place of a loop variable causes the > individual values to be ignored and does not provide access to the current > value during each iteration of the loop.” > > I feel underscore character (_) is confusing, semantically. > > > let names = ["Anna", "Alex", "Brian", “Jack"] > for name in names { > ———-> loop names using name { > print("Hello, \(name)!") > } > > Note : loop ARRAY using ELEMENT(S) - which is logically consistent with > ‘-using’ as last keyword instance. > > let numberOfLegs = ["spider": 8, "ant": 6, "cat": 4] > for (animalName, legCount) in numberOfLegs { > print("\(animalName)s have \(legCount) legs") > } > > loop numberOfLegs using (animalName, legCount) { > print(“ \(animalName)s have \(legCount) Legs”) > } > > Note : Again loop ARRAY using ELEMENT(S) - which is logically consistent with > ‘-using’ as last keyword instance. > > > for (airportCode, airportName) in airports { > loop airports using (airportCode, airportName) > for airportCode in airports.keys { > loop airports.keys using airportCode { > > for airportName in airports.values { > loop airports.values using airportName { > > for value in array[1..<array.count] { > loop array[1..<array.count] using value > > ‘while’ using loop while > > loop while square < finalSquare { > // roll the dice > diceRoll += 1 > if diceRoll == 7 { diceRoll = 1 } > // move by the rolled amount > > Control transfer statements > > repeat { > ——> loop { > … > } while > > > “Break > The break statement ends execution of an entire control flow statement > immediately. ” > > I propose replacing Break, in loops, with exit now (intent is explicit) > Note: Labeled Statements with break - > break gameLoop exit now gameLoop > > “Continue > The continue statement tells a loop to stop what it is doing and start again > at the beginning of the next iteration through the loop.” > > “switch character { > case "a", "e", "i", "o", "u", " ": > continue // Continue what? to next line? to end? to beginning? > default: > puzzleOutput.append(character) > }” > > I propose replacing continue with next cycle or next loop > > > “switch character { > case "a", "e", "i", "o", "u", " ": > next cycle // intent is explicit > default: > puzzleOutput.append(character) > }” > > Note: Labeled Statements with Continue - as per Break example, next cycle > gameLoop > > > _______________________________________________ > swift-evolution mailing list > [email protected] > https://lists.swift.org/mailman/listinfo/swift-evolution
_______________________________________________ swift-evolution mailing list [email protected] https://lists.swift.org/mailman/listinfo/swift-evolution
