先日の日記にid:argius さんからトラックバックを頂いた。
id:argius さんが、bazuzu.d の Perl 版と Ruby 版を書かれている。
さすがに短い。言語の差だけじゃなくて、センスの差も大きいけど。
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;
}