on Tue Jan 24 2017, Matt Whiteside <[email protected]> wrote:
>> On Jan 22, 2017, at 15:40, Chris Lattner via swift-evolution > <[email protected]> wrote: >> Right, the only sensible semantics for a one sided range with an >> open end point is that it goes to the end of the collection. I see >> a few different potential colors to paint this bikeshed with, all of >> which would have the semantics “c[i..<c.endIndex]”: > >> >> 1) Provide "c[i...]": >> 2) Provide "c[i..<]": >> 3) Provide both "c[i..<]” and "c[i…]": >> >> Since all of these operations would have the same behavior, it comes down to >> subjective questions: >> >> a) Do we want redundancy? IMO, no, which is why #3 is not very desirable. >> b) Which is easier to explain to people? As you say, "i..< is shorthand for >> i..<endindex” is nice > and simple, which leans towards #2. >> c) Which is subjectively nicer looking? IMO, #1 is much nicer >> typographically. The ..< formulation looks like symbol soup, >> particularly because most folks would not put a space before ]. >> >> There is no obvious winner, but to me, I tend to prefer #1. What do other >> folks think? > > I also prefer #1. It’s a shame that this conflicts with the potential > syntax for variadic generics. Is there really no way around this? > I’m showing my ignorance on compilers here, but couldn’t the fact that > variadic generics will be inside angle brackets be used to > distinguish? The variadic use cases don't always have ... appearing inside angle brackets. See “pack expansion” at http://en.cppreference.com/w/cpp/language/parameter_pack for example. -- -Dave _______________________________________________ swift-evolution mailing list [email protected] https://lists.swift.org/mailman/listinfo/swift-evolution
