Getting the underlying range from std.range.indexed, with elements in swapped order, when Indexed.source.length == Indexed.indices.length

Uknown sireeshkodali1 at gmail.com
Wed Jun 27 14:29:33 UTC 2018


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.


More information about the Digitalmars-d-learn mailing list