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 ?

Reply via email to