kono@ie.u-ryukyu.ac.jp (Shinji KONO) writes:

> 黒田さんは、Common Lisp で、コンパイラ向けの型制限を使いまく
> る方ですか? 

使い *まくり* はしませんが、必要なら使います。
例えばディジタルフィルタとかフーリエ変換とか型宣言もしないで、
float の boxing をガンガン起こしまくったものを、
お客さんにリリースするわけにいかないので。

> ある意味では、C や Fortran に勝つために導入されたものですよね。

そうなんですか? よくわかりません。別に、
c や fortran をヌキにしても、コンパイラを考えないようなナイーブなもの
使ってたんではせいぜいその言語のネガティブキャンペーンにしかならないように
思います。

> そういう使い方するなら、C でいいかなぁ。

tenth rule によれば、こういう人が ad hoc informally-specified
bug-ridden slow implementation を延々と積みあげていくわけですよね。

> でも、僕に取ってのLISPというと、 シンプルな構文とシンプルな
> 操作意味論を持っていて、その上に、マクロでシンタックスシュガ
> ーをかけるっていうものだっていう偏見があるんだよね。それで、
> 十分にコンパイラが最適化をかけられる筈だと言う感じで。

macro を syntax 抽象に使う、という理解はいいですが、
コンパイラに最適化を指示させるんなら一般に compiler-macro ですね。
ですが型宣言が無くて macro だけで充分な最適化を指示できる方法というの
がわたしには思いうかびません。

> そういう意味で、Common Lisp は、僕に取ってはLISPっぽくないLisp
> ってわけです。

Common Lisp 以外にちゃんと macro や 
compiler macro が使えるものって何を使われるんでしょう?