+1 with Taras > Le 31 mars 2016 à 09:55, Taras Zakharko via swift-evolution > <[email protected]> a écrit : > > 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] <mailto:[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] <mailto:[email protected]> >> https://lists.swift.org/mailman/listinfo/swift-evolution > > _______________________________________________ > 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
