人気ブログランキング | 話題のタグを見る
On Lisp 第17章 リードマクロ
 リードマクロは、普通のマクロよりも Lisp 言語そのものをいじってる感が強いですなぁ。

Lisp のS式の生涯で重要な3つの瞬間
- 読み込み時
ー コンパイル時
- 実行時

リードマクロ => 読み込み時に機能

17.1 マクロ文字
- マクロ文字: Lips のリーダに特別な扱いを要求する文字
(例、"開き括弧")
- set-macro-character, リードマクロの定義
- クォート (') は、Lisp 最古参のリードマクロの一つ
(set-macro-character #\'
#'(lambda (stream char)
(list 'quote (read stream t nil t))))

- read の引数の最後の3つ
1. ファイル終端に達したときにエラーを起こすか
2. 起こさないなら何の値を返すか
3. read を呼び出している間にも read が呼び出されるかどうか
* ほとんどすべてのリードマクロで、第2、第4引数は t であるべき
# 参考: read - refwiki

17.2 マクロ文字のディスパッチング
- シャープ (#): ディスパッチングマクロ文字
- リードマクロを1文字以上で定義するため
ー make-dispatch-macro-character で独自のディスパッチングマクロ文字を定義可能
- # がデフォルトで定義されている
ー set-dispatch-macro-character, ディスパッチングマクロ文字の新たな組み合わせの定義

17.3 デリミタ
- read-delimited-list, 指定した文字が現れるまで Lisp オブジェクトを読み込み
結果のリストを返す
# 参考: read-delimited-list - refwiki


On Lisp
Paul Graham

4274066371
オーム社 2007-03
売り上げランキング : 82240
おすすめ平均 star

Amazonで詳しく見る
by G-Tools
by fkmn | 2009-12-16 23:55 | 一人読書会
<< キーボードを掃除した On Lisp 第16章 マク... >>


とあるWebアプリケーションエンジニアの日記

by fkmn
S M T W T F S
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
カテゴリ
以前の記事
ブログパーツ
リンク
検索
タグ
最新のトラックバック
その他のジャンル
ファン
記事ランキング
ブログジャンル
画像一覧

fkmnの最近読んだ本 フィードメーター - フッ君の日常 あわせて読みたい AX