人気ブログランキング | 話題のタグを見る
On Lisp 第8章 いつマクロを使うべきか
マクロを使う際の注意点について。
この辺は、実際に使って経験を積まないと分からない (実感できない) 部分も多いだろうなぁ。

基本的には関数を使うべき。マクロが必要なときのみ、それを使う。

8.1 他の手段では不可能なとき
- 1. 変形, 引数等の変形が必要な場合
2. 変数束縛, レキシカルな束縛を変更する場合
3. 条件分岐による評価, 引数を特定条件下でのみ評価する場合
4. 複数回の評価, 引数を繰り返し評価する場合
5. 呼び出し側環境を利用する, 呼び出し側のコンテキストの変数等を利用する場合
* ただし、あまり望ましい使用方法ではない
6. 新しい環境を包み込む
7. 関数呼び出しを節約する
* コンパイル後のコードではマクロ呼び出しに関わるオーバーヘッドがない

8.2 マクロと関数どちらが良い?
- マクロの長所
1. コンパイル時の計算
2. Lisp との密な統合
3. 関数呼び出しの節約

- マクロの短所
1. 関数はデータだが、マクロはコンパイラへの指示に近い
2. ソースコードの明確さ (が失われる)
3. 実行時の明確さ (が失われる)
4. 再帰 (が関数のときほど簡単ではない)


On Lisp
Paul Graham

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

Amazonで詳しく見る
by G-Tools
by fkmn | 2009-11-12 23:55 | 一人読書会
<< MacPorts で Merc... On Lisp 第7章 マクロ >>


とある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