Common Lispのpathname
shiro先生の指摘によるとCLにはパスリテラルに相当する物が既にあるらしい。#Pで始まるアレか。
#Pはpathnameになる。
- http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/Body/fun_make-pathname.html
- http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/Body/glo_p.html#pathname
pathname n. an object of type pathname, which is a structured representation of the name of a file. A pathname has six components: a ``host,'' a ``device,'' a ``directory,'' a ``name,'' a ``type,'' and a ``version.''
versionとか書けるのか。。pathnameの文字列表現はnamestring。
- http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/Body/fun_parse-namestring.html
- http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/Body/sec_19-3-1.html
複雑な一方で、Subversionとかgitで実現できているような、ディレクトリのバージョンとかは表現できないわけで絶妙な気がする。例えばplan9では、基本的に全てのファイルはパス名(64bit)とバージョン(32bit)の組で、ディレクトリもファイルの一種。
namestring仕様の元ネタはなんなんだろう。PDPで動いていたようなOSを一通り探せば有りそうだけれど。
現代的には。。あまり良いアイデアが無い。