www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 15759] New: chunks should work with only an input range


          Issue ID: 15759
           Summary: chunks should work with only an input range
           Product: D
           Version: D2
          Hardware: x86_64
                OS: Linux
            Status: NEW
          Severity: enhancement
          Priority: P1
         Component: phobos
          Assignee: nobody puremagic.com
          Reporter: greeenify gmail.com

It would be nice if `chunks` would accept only an InputRange too. Let me show
you a common pattern that I often use:

// iterate over two lines in a pair and compute the difference between them
// 1 2
// 2 3
// => 2
stdin.byLineCopy.map!(x => x.splitter(' ').map!(to!int)).chunks(2)).map(x =>
  abs(x.frontPop - x.front);

This currently doesn't compile, because `chunks` doesn't buffer, it saves the
state of the forward range. However adding support for normal Input Ranges
shouldn't can easily done using a local buffer - I already wrote the code at
some point:


I would be happy to wrap this up nicely and bring it into a phobos shape - any

Mar 04 2016