先日の日記に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; }