...ing logging 4.0

はてなブログに移行しました。D言語の話とかいろいろ。

愚直に書くのが最速だった

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で書く方が早かった.
むむむ.