カテゴリ:一人読書会
リードマクロは、普通のマクロよりも Lisp 言語そのものをいじってる感が強いですなぁ。
Lisp のS式の生涯で重要な3つの瞬間 On Lisp Paul Graham ![]() オーム社 2007-03 売り上げランキング : 82240 おすすめ平均 ![]() Amazonで詳しく見る by G-Tools 「関数を返すマクロ」があるのであれば、「マクロを定義するマクロ」を考えるのは自然な発想ですな。
第16章 マクロを定義するマクロ On Lisp Paul Graham ![]() オーム社 2007-03 売り上げランキング : 82240 おすすめ平均 ![]() Amazonで詳しく見る by G-Tools そろそろ紹介されるマクロが大きく複雑になってきて、ついていくのが少し大変になってきた。
15.2 Cdr部での再帰 On Lisp Paul Graham ![]() オーム社 2007-03 売り上げランキング : 82240 おすすめ平均 ![]() Amazonで詳しく見る by G-Tools アナフォリックって何かと思ったら、要は Perl の $_ に相当するものだとのこと。考え方自体は割と単純。試しに、aif を Ruby でそれっぽく実装してみると、こんな感じか。
def aif(test, &then_form) ただ、else は簡単には再現できそうにない。この辺りでマクロの強力さを思い知る。 - アナフォラ => 「それ」、「it」、Perl の $_ On Lisp Paul Graham ![]() オーム社 2007-03 売り上げランキング : 82240 おすすめ平均 ![]() Amazonで詳しく見る by G-Tools
コンパイル時にできる事をできるだけやってしまうことで、高速化をはかることができる。
ベジエ曲線の例はちょっとついていけなかった。ついていく必要も無い気がするけどw もう少し実用的な例は、後の章で出てくるらしい。 13.1 新しいユーティリティ On Lisp Paul Graham ![]() オーム社 2007-03 売り上げランキング : 82240 おすすめ平均 ![]() Amazonで詳しく見る by G-Tools setf に絡むマクロの章。
何となく基本テクニックっぽい感じがするのは気のせいか。 12.1 汎変数という概念 On Lisp Paul Graham ![]() オーム社 2007-03 売り上げランキング : 82240 おすすめ平均 ![]() Amazonで詳しく見る by G-Tools だんだんマクロの規模が大きくなってきた。がんばってついていこう。
ちなみに、最近、仕事でコードを書いていて、「あ、これマクロでやれそう (やりたい)」と考える事が多くなってきた。徐々に洗脳が進んでいるらしい。 よく使われる種類のマクロ On Lisp Paul Graham ![]() オーム社 2007-03 売り上げランキング : 82240 おすすめ平均 ![]() Amazonで詳しく見る by G-Tools 評価の順番が問題になる例がヤバい。こんなのに遭遇したら、かなりの時間を取られそう。
副作用と再帰に関しては、マクロ展開の結果がイメージできていれば、避けるのはそんなに難しくない気がする。 10.2 評価の順番 On Lisp Paul Graham ![]() オーム社 2007-03 売り上げランキング : 82240 おすすめ平均 ![]() Amazonで詳しく見る by G-Tools
慣れるまでは、マクロを使う際に変数名の衝突ではまりそうで怖い。とりあえず、gensym 使っておけば大丈夫っぽく思えるけど、どうなんだろ。
それから、Common Lisp の defmacro と Scheme の「健全なマクロ」の違いについてよくわかってないので、後で勉強する。 9.4 適切な名前によって捕捉を避ける On Lisp Paul Graham ![]() オーム社 2007-03 売り上げランキング : 82240 おすすめ平均 ![]() Amazonで詳しく見る by G-Tools
マクロを使う際の注意点について。
この辺は、実際に使って経験を積まないと分からない (実感できない) 部分も多いだろうなぁ。 基本的には関数を使うべき。マクロが必要なときのみ、それを使う。 On Lisp Paul Graham ![]() オーム社 2007-03 売り上げランキング : 82240 おすすめ平均 ![]() Amazonで詳しく見る by G-Tools < 前のページ次のページ >
|
とあるWebアプリケーションエンジニアの日記
by fkmn カテゴリ
以前の記事
ブログパーツ
リンク
検索
タグ
Ruby
CL
感想
Perl
コンピュータ
IT
C#
PHP
インフォマティクス
R
日記
一人読書会
ライフサイエンス
ブログ
programming
Lifehack
本
ゲーム
ネタ
Scheme
最新のコメント
最新のトラックバック
おすすめキーワード(PR)
ファン
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||