D: キレイじゃないコード

先日の日記id:argius さんからトラックバックを頂いた。
id:argius さんが、bazuzu.d の Perl 版と Ruby 版を書かれている。

argius.hatenablog.jp

さすがに短い。言語の差だけじゃなくて、センスの差も大きいけど。

D 版もちょっとだけ短くしてみた。が、キレイにはならなかった……。

import std.stdio, std.string, std.file, std.path, std.c.stdlib;

int main(char[][] args) {
	writefln("[%s]", args[1]);
	char[] value = toString(getenv(toStringz(args[1])));
	foreach (char[] path; split(value, pathsep)) {
		char mark = (exists(path) ? (isdir(path) ? 'd' : 'f') : '!');
		writefln("%s %s", mark, path);
	}
	return 0;
}