import std.stdio, std.range; void mywrite(char [5] chars, real[5] vals) { static string [5] fmts = ["%9.4f, ", "%9.4f; ", "%3d, ", "%3d, ", "%3d\n"]; foreach (e; zip(chars, fmts, vals)) write(e[0], " = ", e[1].format(e[2])); }
Compiling gives: zip_string.d(5): Error: template std.range.zip cannot deduce function from argument types !()(char[5], string[5], real[5]), candidates are: /usr/include/dmd/phobos/std/range/package.d(3678): std.range.zip(Ranges...)(Ranges ranges) if (Ranges.length && allSatisfy! (isInputRange, Ranges)) /usr/include/dmd/phobos/std/range/package.d(3711): std.range.zip(Ranges...)(StoppingPolicy sp, Ranges ranges) if (Ranges.length && allSatisfy!(isInputRange, Ranges)) I would have thought there would be no problem in creating a zip of three arrays of equal length. What's the problem here? -- Shriramana Sharma, Penguin #395953