taskPool.map using functions with more than one input

Joseph Rushton Wakeling joseph.wakeling at webdrake.net
Wed Nov 14 09:31:07 PST 2012


Is it possible to use taskPool.map with functions that take more than one input?

Consider the following code which uses map to convert a given value to its sum 
with another number:

       import std.algorithm, std.parallelism, std.range, std.stdio;

       real pairsum(real x, real y)
       {
             writeln("Calculating sum of ", x, " + ", y);
             return x + y;
       }

       void main()
       {
             real x = 3.0;
             auto y = iota(0.0, 1.0, 0.05);

             auto psums = map!(a => pairsum(x, a))(y);

             foreach(s; psums)
                   writeln(s);
       }

Simply replacing map! with taskPool.map! results in a compilation error due to 
the use of the a => notation.  But how else to tell it the function arguments 
that should _not_ be iterated over?  Or is taskPool.map! limited to 
single-argument functions?


More information about the Digitalmars-d-learn mailing list