Re: LISP を使うとき ([Q]ログインシェルとそうでないシ ェル)
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 が使えるものって何を使われるんでしょう?
Fnews-brouse 1.9(20180406) -- by Mizuno, MWE <mwe@ccsf.jp>
GnuPG Key ID = ECC8A735
GnuPG Key fingerprint = 9BE6 B9E9 55A5 A499 CD51 946E 9BDC 7870 ECC8 A735