std.parallelism taskPool.map example throws exception
Jay Norwood via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Fri Aug 7 16:25:53 PDT 2015
I tried to create a working example from the std.parallelism
taskPool.map code, and it throws with empty strings with length 1
being passed to to!double. Anyone have a working example? I'm
building on Windows with 2.067.1 dmd.
import std.parallelism;
import std.algorithm;
import std.stdio;
import std.conv;
import std.math;
import std.range;
import std.file;
void main()
{
auto fn = "numberList.txt";
auto f = File(fn,"w");
scope(exit) std.file.remove(fn);
foreach (i ; iota(10.0,2_000.0)){
f.writefln("%g",i+0.5);
}
f.close();
auto lineRange = File(fn).byLine();
auto dupedLines = std.algorithm.map!"a.idup"(lineRange);
auto nums = taskPool.map!(to!double)(dupedLines);
auto logs = taskPool.map!log10(nums);
double sum = 0;
foreach(elem; logs)
{
sum += elem;
}
writeln("sum=",sum);
}
More information about the Digitalmars-d-learn
mailing list