module pind.samples.ja.parallelism.parallelism_8; import std.stdio; import std.algorithm; import core.thread; struct Student { int number; int[] grades; double averageGrade() { writefln("Started working on student %s", number); Thread.sleep(1.seconds); const average = grades.sum / grades.length; writefln("Finished working on student %s", number); return average; } } void main() { Student[] students; foreach (i; 0 .. 10) { /* 各生徒に2つの成績 */ students ~= Student(i, [80 + i, 90 + i]); } auto results = map!(a => a.averageGrade)(students); foreach (result; results) { writeln(result); } }