final class Lexer { private const string source; this(in string source) { this.source = source; } const(string)[] lex() const { static string[] f(string line) { auto app2 = appender!string(); app2.put(line); app2.put(","); app2.put(TOKEN_END_OF_LINE_MARK); return split(app2.data, ","); } auto app = appender!(string[])(); foreach (string line; splitLines(source)) foreach (string r; f(line)) app.put(r); return app.data; } }
std.parallelismやThreadを使って書くよりも愚直にforeachで書く方が早かった.
むむむ.