Thread overview | |||||
---|---|---|---|---|---|
|
January 14, 2014 Regarding std.range.indexed | ||||
---|---|---|---|---|
| ||||
Code like this doesn't compile, the swap doesn't work: import std.range: indexed; import std.algorithm: swap; void main() { immutable source = [10, 20, 30]; auto ind = indexed(source, [0, 1, 2]); swap(ind[0], ind[1]); } But isn't an important usage case of indexed() to shuffle and sort a view of an immutable array, like sorting a immutable(int)*[] ? Bye, bearophile |
January 14, 2014 Re: Regarding std.range.indexed | ||||
---|---|---|---|---|
| ||||
Posted in reply to bearophile | On Tuesday, 14 January 2014 at 01:14:41 UTC, bearophile wrote:
> Code like this doesn't compile, the swap doesn't work:
>
>
> import std.range: indexed;
> import std.algorithm: swap;
> void main() {
> immutable source = [10, 20, 30];
> auto ind = indexed(source, [0, 1, 2]);
> swap(ind[0], ind[1]);
> }
>
>
> But isn't an important usage case of indexed() to shuffle and sort a view of an immutable array, like sorting a immutable(int)*[] ?
>
> Bye,
> bearophile
I thought it was to provide an index number during a foreach iteration. If you have an randomAccess range with assignable elements, why use indexed?
|
January 14, 2014 Re: Regarding std.range.indexed | ||||
---|---|---|---|---|
| ||||
Posted in reply to Jesse Phillips | Jesse Phillips: > I thought it was to provide an index number during a foreach iteration. That's the enumerate() range, that is still missing in Phobos. > If you have an randomAccess range with assignable elements, why use indexed? But "source" is immutable, so its elements aren't assignable. Bye, bearophile |
Copyright © 1999-2021 by the D Language Foundation