On Wednesday, 27 June 2018 at 14:29:33 UTC, Uknown wrote:
On Wednesday, 27 June 2018 at 14:21:39 UTC, Alex wrote:
On Wednesday, 27 June 2018 at 13:27:46 UTC, Uknown wrote:
Title says it all. Is there a trivial way to do this?
There are
https://dlang.org/library/std/algorithm/mutation/reverse.html
and
https://dlang.org/library/std/range/retro.html
both require a bidirectional range, which Indexed, luckily is.
I wasn't clear enough. I meant getting back the underlying
`Source` range with _its_ elements in the order that the
indices specify. This wouldn't be possible in the generic case,
but the special case when indices.length == source.length, it
should be possible. So indexed(myRange, [2, 3, 5, 1,
4]).sourceWithSwappedElements should return a typeof(myRange)
with the elements swapped in that order.
I see. Ok, one possibility is
source = indexed(source, indices).array;
but I assume you want something without extra allocation, right?