<div dir="ltr">On Tue, Jan 31, 2017 at 5:04 PM, Matthew Johnson <span dir="ltr">&lt;<a href="mailto:matthew@anandabits.com" target="_blank">matthew@anandabits.com</a>&gt;</span> wrote:<div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div style="word-wrap:break-word"><div><span class="gmail-"><div><br></div></span><div>I think it’s fair to say that we get to decide on the semantics of postfix `…`.  “a range with no upper bound” is very reasonable, but wouldn’t another reasonable semantics be “all the rest”, meaning that there *is* an upper bound (the greatest possible value).  </div></div></div></blockquote><div><br></div><div>&quot;All the rest&quot; is by itself insufficient so far as semantics: all the rest _of what_? Supposing that our supplied lower bound is an integer, it must be all the rest of the integers. It cannot be all the rest of whatever, where whatever might be a collection that you try to subset with `0...`. (Recall that collections move indices, but indices know nothing about the collections.) It would be exceeding fuzzy for postfix `...` to mean &quot;all the rest of whatever I want it to mean&quot;--that, almost tautologically, has no semantics at all.</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div style="word-wrap:break-word"><div><div></div><div>Under the latter semantics, a `for i in 0…` loop would terminate after reaching Int.max.  This is probably not what the user intended and would still crash when used in David’s example, but it’s worth considering.</div></div></div></blockquote><div><br></div><div>OK, I&#39;m borderline fine with `0... == 0...Int.max`. It at least provides some semantics (i.e., we&#39;re saying `...` refers to all the rest of the values representable by the type used for the lower bound) [**]. But Jaden&#39;s point still stands, since it would only be consistent if `for i in arr[0...]` then traps after `arr.count` just like `for i in arr[0...Int.max]` would do. Otherwise, we really are fudging the semantics.</div><div><br></div><div>[**] It is not perfectly consistent semantically because, as was discussed in threads about our numeric protocols, our integer types are supposed to model all integers, not just the ones that happen to be representable. Our model is imperfect because not all integers fit into finite memory, but that&#39;s a modeling artifact and not intentional semantics. IIUC, it would be otherwise difficult to give a good accounting of, say, the semantics of addition if arithmetic overflow were an intentional part of the semantics and not an artifact.</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div style="word-wrap:break-word"><div><div>I’m not sure if you read Ben’s post regarding `enumerated` or not, but he gave the example of `zip(0…, sequence)` as a more general replacement for `enumerated`.  IMO, he makes a pretty strong case for this.</div><span class="gmail-"><br><blockquote type="cite"><div><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div><br></div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div dir="auto"><div>- Dave Sweeris </div></div><br>______________________________<wbr>_________________<br>
swift-evolution mailing list<br>
<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a><br>
<a href="https://lists.swift.org/mailman/listinfo/swift-evolution" rel="noreferrer" target="_blank">https://lists.swift.org/mailma<wbr>n/listinfo/swift-evolution</a><br>
<br></blockquote></div><br></div></div>
______________________________<wbr>_________________<br>swift-evolution mailing list<br><a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a><br><a href="https://lists.swift.org/mailman/listinfo/swift-evolution" target="_blank">https://lists.swift.org/<wbr>mailman/listinfo/swift-<wbr>evolution</a><br></div></blockquote></span></div><br></div></blockquote></div><br></div></div>