Lisp日記 2012-02-13 — #:g1

Posted 2012-02-13 12:36:00 GMT

SRFIブログと化しているので他のことも、まぜて行きたいと思い適当なメモを書いて行くことにした。

分からないこと/調べること

cl:defstruct srfi-99を移植していたが、CLの構造体でスロットからライターを特定する方法が分からない。
cl:defstruct read-only tでもライターを定義すれば書き込めたんだったろうか。実際試すとそうなる
cl:defstruct イントロスペクションは、clos系のツールを使う他なかっただろうか。

やりたいこと

過去のcomp.lang.lisp等のメール一切合切を検索できるようにしたい。90年代のメールが一番面白いというのが悲しいところ。でも、面白いから検索できるようにしたい。

みつけたもの

FreeLispのことを調べていたら、大学でHalequinのバイナリを配布してたところを発見したので、wineで動かしてみた。それなりに動くが、コンパイラがないので厳しい。
lisp-pointerのpdfを公開しているところがあったので読む。Richard C. WatersさんのCOVERとか面白い。 その他、CLで型推論とか、内包表記とか、その他色々90年代初頭に書かれてはいる。

思ったこと

Emacs lispをlispの方言としてみると、MacLISPのエディタ組み込み版というところだと思う。
MacLISPは、80年代初頭にCLに取って代わられたし、LISPとしては、30年前に発展的解消したような言語仕様かなと思う。
言語機能で類似するところは、変数が動的、パッケージなし、というところが似ている。
言語文化としては、RMSは、MacLISPで育ったのと、CLが嫌いということで、その辺りのMacLISP的主張が結構ある気がする。
大域変数に耳当ては付けるなという規約は、MacLISP時代のスタイルかなと思うし、keyword引数が嫌いというのは、CLで導入された:test系で述語を選択するスタイルが気に食わないということなのかなと思う。(memq、member等、それぞれ作成するスタイル。現在のScheme等もそのスタイル)。
MacLISPではSchemeっぽいスタイルで書かれることはほとんど無く、返り値に関数を返すということもなく、ループを回して処理していくという命令的なスタイルだった。
しかし、マクロはあるし、値を返していくという基本は変らないので、形は違えどやっぱりLISP的だなと思う。
言語仕様が似ているMacLISPと、elispでユーザーが書くコードは似ているかというと、そんなこともないのが面白い。 ■

comments powered by Disqus