Andrei Alexandrescu wrote:
Hello,
I'm defining two ranges that go vertically over a range of ranges.
Consider for example an int[][]. That's a range that has a range as its
element type.
FrontTransversal goes transversally over the range of ranges and returns
the front of each element in turn:
int[][] x = new int[][2];
x[0] = [1, 2];
x[1] = [3, 4];
auto ror = frontTransversal(x);
auto witness = [ 1, 3 ];
uint i;
foreach (e; ror) assert(e == witness[i++]);
assert(i == 2);
Then Transversal does a similar thing, just that instead of going
through the front of each range, it goes over a column set during
construction:
int[][] x = new int[][2];
x[0] = [1, 2];
x[1] = [3, 4];
auto ror = transversal(x, 1);
auto witness = [ 2, 4 ];
uint i;
foreach (e; ror) assert(e == witness[i++]);
assert(i == 2);
Question is, what would be two good names for these ranges?
Andrei
Question is, how this fits into a collection/container package.
..So frankly, I don't worry about naming conventions. I am more
concerned about ranges within a let's say dynamic d e queue.
Lock free ADTs are a final proof of product , no ?
Maybe I miss something.
But fact is : D2 (Phobos) still don't have (not even in it's brand new
incarnation ) support for simple humpty dumpty collections. So Proof of
product is where ?