On Sunday, 25 September 2016 at 11:48:38 UTC, Jonathan M Davis
wrote:
It's because ranges are effectively a sliding window over
whatever they're iterating over.
I think this is the difference in perception - ranges do not
_have_ to be sliding windows, they can just as well be windows
that don't move. I find the latter approach to be more workable
and intuitive that the former, and in almost every case the
approach results in more concise and performant code for
performing those operations.
When would I ever want `range[0]` to give me the same thing as
`range.front`? I want it to give me the first item in the range's
view at the time of its creation.
I strongly oppose any change that makes the former approach an
inherent part of D. I honestly don't think the latter approach
should be an inherent part of D, either, but I'd have a hell of a
time trying to use the language if it wasn't an option.