> An obvious question is, should it be equivalent to 1...n, or 0..<n?

I think that’s exactly why this isn’t a good idea. The semantics of `for i in 
5` are not immediately clear at all.

If this was to be a language feature, `repeat 5`, suggested by Chris, seems 
like the least-ambiguous choice.

— Radek

> On 18 Dec 2015, at 22:09, Jacob Bandes-Storch via swift-evolution 
> <[email protected]> wrote:
> 
> This can be done pretty easily, although I think the approach has the 
> potential to cause confusion elsewhere in code. An obvious question is, 
> should it be equivalent to 1...n, or 0..<n?
> 
> extension Int: SequenceType {
>     public func generate() -> RangeGenerator<Int> {
>         return (0..<self).generate()
>     }
> }
> 
> for i in 5 {
>     print("hello \(i)")
> }
> 
> Jacob Bandes-Storch
> 
> On Fri, Dec 18, 2015 at 1:03 PM, Brent Royal-Gordon via swift-evolution 
> <[email protected] <mailto:[email protected]>> wrote:
> > I’d like to propose an addition of a useful method, especially for 
> > beginners that also makes Swift much more readable in some situations: The 
> > addition of a .times method to Integer type(s).
> 
> I’ve said it before, but I don’t think `times` is a good solution for 
> learners. It teaches them a form of looping they will never use in practice 
> and does not allow them to practice with ancillary loop skills like `break` 
> and `continue`.
> 
> I think our best bet is to extend the `for` loop to allow a single number, 
> meaning either `1…n` or `0..<n` (you can argue it either way), and also to 
> allow the `variableName in` part to be omitted, meaning `_ in`. This gives us 
> the pedagogical simplicity of a “do this N times” loop, but couches it in a 
> form where, when the student moves on, more commonly used loop forms are a 
> straightforward extension of that simple case.
> 
>         for 5 { print(“Hello!”) }
>         for i in 5 { print(“Hello \(i)!”) }
>         for i in 10..<20 { print(“Hello \(i)!”) }
>         for i in 10...20 { print(“Hello \(i)!”) }
> 
> --
> Brent Royal-Gordon
> Architechies
> 
> _______________________________________________
> swift-evolution mailing list
> [email protected] <mailto:[email protected]>
> https://lists.swift.org/mailman/listinfo/swift-evolution 
> <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

Reply via email to