タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

マクロに関するF_p_20030509のブックマーク (2)

  • On Lisp --- マクロ

    Lispのマクロ機能を使うと,コードの変換によってオペレータを実装することができる. マクロ定義とは実質的にLispコードを生成する関数だ ---つまりプログラムを書くプログラムだ. この一歩から始めて,大きな可能性と予期せぬ危険に足を踏み入れていく. 第7章から第10章はマクロの基礎講座だ. この章ではマクロがどのように動作するのかを説明し, マクロを書いたり動作を確かめるときのテクニックを示し, マクロを書くスタイルについての話題に進む. マクロはどのように動作するか マクロは呼び出せるし値を返せるので,関数と一緒くたにされがちだ. マクロ定義は関数定義に似ていることもあるし, 実際はマクロであるdoを普段「組み込み関数」と呼ぶ人も多い. しかしこの喩えを突き詰めすぎると混乱の元になる. マクロの動作は普通の関数とは違っている. マクロはどのように,そしてなぜ違うのかを知ることは,マク

  • なぜ他の言語に、Lispのようなマクロがないのか?

    前回の9LISPでも掲題のような話をしていました。私も最近このことが気になります。なんでだろう? そこで、こういう文章があったなーと。 Revenge of the Nerds (Lispの意味での)マクロは、私の知る限り依然としてLispに特有のものだ。 たぶん、マクロを持つためには言語をLispと同じような奇妙な外見にしないと 駄目だからだろう。それにまた、マクロという最後の力を加えたら、 それは新しい言語ではなくLispの新しい方言になってしまうからだろう。私はよくジョークでそういうことを言うのだが、実際それは真実なんだ。 car、cdr、cons、quote、cond、atom、eq、そして関数をリストで表現する 方法を備えた言語があれば、あなたはLispの残り全てをそれで構築することができる。 これがLispの質を定義しているんだ。McCarthyがLispにこの姿を与えたのは、

    なぜ他の言語に、Lispのようなマクロがないのか?
  • 1