[Issue 17966] New: chunkBy cannot accept an input range (from multiwayMerge)

d-bugmail at puremagic.com d-bugmail at puremagic.com
Sun Nov 5 13:20:13 UTC 2017


https://issues.dlang.org/show_bug.cgi?id=17966

          Issue ID: 17966
           Summary: chunkBy cannot accept an input range (from
                    multiwayMerge)
           Product: D
           Version: D2
          Hardware: x86_64
                OS: Windows
            Status: NEW
          Severity: normal
          Priority: P1
         Component: phobos
          Assignee: nobody at puremagic.com
          Reporter: gamblemj at gmail.com

I posted this issue to forum.dlang.org/learn
https://forum.dlang.org/post/fzgzvwytjbdqozviopzk@forum.dlang.org

I was asked to post this here by Nicholas Wilson, who responded to my post on
"learn". This is my first post here, apologies I did it wrong.

I guess there are two issues one of which seems to be a bug.

The bug: chunkBy is advertised as working on input ranges, but it seems that it
doesn't.

The smaller issue: Why can't multiwayMerge produce a forward range instead of
input range?


        auto d =[2,4,6,8];
        auto e =[1,2,3,5,7];
        auto f =[d,e];

        writeln(f.multiwayMerge.chunkBy!"a == b");//error happens
        writeln(f.multiwayMerge.array.chunkBy!"a == b");//no error, but there
must be a better way!

I know the test code seems silly. Why not just use multiwayUnion and no need
for chunkBy? However, this is a dumbed down version to show the error. There
are use cases where "a == b" is a bit more complicated and the underlying
elements are not completely equivalent and so you want them all grouped
together, in which case multiwayUnion is not going to do the right thing. 

OK, hope I did this right.

Matt

--


More information about the Digitalmars-d-bugs mailing list