OK, new package here: https://github.com/timholy/EndpointRanges.jl
It might make life easier even for folks who aren't using custom-indexed arrays. Give it a whirl and see what breaks! Best, --Tim On Tuesday, July 26, 2016 2:31:10 AM CDT Oliver Schulz wrote: > Hi Tim, > > I should have known you already have a (very elegant) solution in your > pocket. :-) I really like your proposed first:last syntax! > > Concerning Base._length, I was rather thinking about something for the > average user to use instead of length. For everyday > use, length(linearindices(A)) is just too unwieldy, IMHO. > > > Cheers, > > Oliver > > On Tuesday, July 26, 2016 at 9:21:27 AM UTC+2, Oliver Schulz wrote: > > I was reading up on the new arrays with custom indices in 0.5. Now that > > array indices do not implicitly start with one, what's the generic > > replacement for index ranges like > > > > A[2:end-1] > > > > Will there by something like > > > > A[start+1:end-1] > > > > or so? > > > > Also, since for safety reasons length(A) is now supposed to throw an error > > for custom-indexed Arrays (for safety, to prevent 1:length[A]), the > > current > > recommendation > > (http://docs.julialang.org/en/latest/devdocs/offset-arrays/) > > is to use > > > > length(linearindices(A)) > > > > instead of length() in generic code. This strikes me as very lengthy > > indeed (pardon the pun) and will make code less readable - how about a new > > length function like > > > > Base.len(A) = length(linearindices(A)) > > > > or similar? If there's no "official" replacement for length in Base, I > > suspect that packages will add their own internal version of it at some > > point. Also, people might get tempted to continue using length() out of > > laziness (if there's no short replacement) - resulting in code that fails > > for the new arrays.
