Re: LISP を使うとき([Q] ロ グインシェルとそうでないシェ ル)
河野真治 @ 琉球大学情報工学です。
LISP の LISP らしさって言うと、
S式 ((カッコ!)) の構文
それに対して定義された操作意味論
ですよね。あと、
リストを中心としたデータ構造 (ってのは Common Lisp では時代遅れ?)
GC (触れてはいけない話題かも知れないけど)
となるわけですけど。
構文 = データ構造
ってのは便利ですよね。覚えるものが少ないところが良いはずだったのだが...
Common LISPは、ちょっと多すぎるかなぁ。
In article <m3ekley1d4.fsf@nospam.maedapc.cc.tsukuba.ac.jp>, MAEDA Atusi <maeda-news@ialab.is.tsukuba.ac.jp> writes
> > ってのが、もう少し見直されても良いと思うんだけど。インタプリタだから
> > コンパイルできなくて遅いっていう時代じゃぁないと思う。
> うーん。でも遅いし。
インタプリタ向きのセマンティクスを持っているからと言ってコン
パイル結果が遅いとは限らないっていう意味です。まぁ、Dynamic
scope とかは向いてないだろうとは思うけどさ。
コンパイラが遅くなるセマンティクスってのは、例えば、実行時に
ならないと特定できない情報が多い場合です。良くあるのは型が決
まらない場合ですね。だからオブジェクト指向言語はコンパイラで
も実はかなり遅い。あと、C++ とかBasic とかで、あるいは、Perl
もそうなんだけど、文字列とかハッシュテーブルとかの手間のかか
るデータ構造中心の処理をされちゃうと、コンパイラはあまり頑張
れない。
Common Lisp もいろいろ工夫されているけど、Compile 結果を早く
するためには注意してプログラムする必要がありますね。
---
Shinji KONO @ Information Engineering, University of the Ryukyus
河野真治 @ 琉球大学工学部情報工学科
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