[Issue 8405] Create overload for joiner which is random access for random access ranges
via Digitalmars-d-bugs
digitalmars-d-bugs at puremagic.com
Sun Nov 9 14:29:28 PST 2014
https://issues.dlang.org/show_bug.cgi?id=8405
bearophile_hugs at eml.cc changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |bearophile_hugs at eml.cc
--- Comment #2 from bearophile_hugs at eml.cc ---
Some use cases. Given a 2D array, I'd like to sort or shuffle its items seen as
sequential:
import std.stdio: writeln;
import std.algorithm: sort;
import std.range: joiner, chain;
import std.random: randomShuffle;
void sortAll(int[][] m) {
m.joiner.sort(); // error
}
void shuffleAll(int[][] m) {
m.joiner.randomShuffle; // error
}
void main() {
auto m = [[10, 2], [30, 4]];
m.writeln;
chain(m[0], m[1]).sort(); // OK
m.sortAll;
m.writeln;
m.shuffleAll;
m.writeln;
}
Is it possible and reasonable for "joiner" to return a random access range in
such cases (where the input is a random access range of random access ranges,
this isn't an uncommon use case because built-in arrays are very common in D
code)?
--
More information about the Digitalmars-d-bugs
mailing list