Lisp in One Day 2007
- 参加しました.メモを読みたいと言われたので公開してみます.あいにく睡眠不足で一日中眠くて途中落ちたりしてたので,内容の正確さと網羅性は期待しないで下さい.
- Paradigm of AI Programming isbn:9781558601918 (by Peter Norvig) はとても良い本らしい.
- Symbol は奥が深い
- 1st Class Symbol
- パッケージとシンボル
- CL には restart という概念がある.
- スペシャル変数: * * で囲う
- Symbol と 変数 の違い
- CLは Name Space を 5つ くらい持っている
- 変数, 関数, ラベル, タイプ, パッケージ
- setq と setf
- special operator ;; 引数を評価するかしないか
- 関数定義
- (defun hoge (fuga) " " ...)
- - " " の部分はドキュメンテーションといって処理系はどっかにちゃんととっておいてくれる.
- defvar : 名前をスペシャル変数の名前として使いますよという宣言
- special 変数をどーしても変えたくなったら defparameter を使う
- special 変数は他の言語に対応するものが無い..
- (defvar *p* ...) と必ず書く.
- 関数オブジェクトと関数ポインタ
- エラーのハンドリング
- 副作用を何とかしたい -> unwind-protect とかを使う.
- (funcall #'+ 1 2 3) == (apply #'+ 1 2 3 '())
- apply は最後にリストが必ず必要.
- "*" は 直前に評価されたもの
- "**", "***" まである. ;; GCの最適化で一度はハマるらしい
- ANSI-SPEC を良く読め. ボキャブラリが豊富になる.自然言語と同じ.
- Macro への理解を深めよ. Syntaxの抽象化に使う.
- else 部のない if を書くな.-> when を使え.
- (Franzの) if* を使うな.
- scope と extent. ANSI CL 2nd Ver.にちゃんと載っている.
- Scheme と Common Lisp は別ですよ.
- EVAL のタイミング.
- Condition Handling.
- format output.
- fill-pointer array みたいなのはCL以外になかなか無い.
- SICM本 isbn:9780262194556 ベタぼめ.Scheme がハマる領域.
- Fortlan の処理系無くなっちゃったから何とかしてくれ.-> CL で.
- CL HyperSpec, CLv2, Paradigm of AI Programming の三冊を完全に読み終わったらエキスパート
- CLOSの本(絶版). MOP の本.
- On Lisp isbn:9780130305527 さらにdisられまくり.
- Common Lisp 入門 isbn:9784000076852
- NIL, (), '()
- () はフォームで使う.
- fixnum CLが最も効率良く扱える数値.
- レジスタにすぽーんと入るから.
- クロージャは高くつく.
- mlisp と alisp