On Sunday, 6 October 2019 at 20:34:55 UTC, Brett wrote:
If it can be done and make to work well with ranges it would allow many algorithms to be very easily expressed and make ranges more powerful.
You can make it a range by adding an "alias this" to the original array:
struct ExtendedArray(T) { T[] a; alias a this; T opIndex(int i) { if (i < 0) return a[0]; else if (i >= a.length) return a[$-1]; else return a[i]; } } Full example: https://run.dlang.io/is/2x6LKD