Windows環境ではなんだかんだとunzipが面倒臭い。 
 Emacsから外部アプリケーションを起動してコマンドひとつで、unzipできるようにしているのだけど、外部アプリケーションは非同期で、動いているので、unzipしたあとの作業が自動化しづらい。できなくはないけれど、Emacsから同期してunzipができれば、それが一番だ。 
 そこで slime-evalを使ってABCL経由でunzipすることにした。 
 ABCLはjavaで作られていることもあって内蔵のunzipがあるのだ。 
 で、やってみたら落ちた。 
 slime-evalがエラーになっていた。 
 ——なんで? 
 調べてみると、どうやらABCLのunzipは展開したファイルのlistを返却してくれていてそれが原因らしい。というのもlistの中身はpathnameで「#P"/XXXX/XXX"」みたいになっているのだが、これをelispが解釈できなかった。 
 目が点だ。 
 pathnameって中身はstringじゃなかったの? 
CL-USER> (stringp #P"/tmp/a") NIL CL-USER> (pathnamep #P"/tmp/a") T CL-USER>
 ちがう。なんてこった。 
 stringに変換する関数を探す。一番、時間がかかった。見つけた。 
 ——namestring 
CL-USER> (namestring #P"/tmp/a") "/tmp/a" CL-USER>
 これさえあれば、listの中身を一括変換するのはmapcarで一発である。