「コンパイラ・スクリプトエンジン」相談室 3
at TECH
[
2ch
|
▼Menu
]
■コピペモード
□
スレを通常表示
□
オプションモード
□このスレッドのURL
■項目テキスト
700:デフォルトの名無しさん 04/06/29 22:39 Lispのマクロは 評価時に展開されるから *プリ*プロセッサとは言わない 701:デフォルトの名無しさん 04/06/30 22:18 >>700 評価に先駆けて展開しといたり、 コンパイル時にも展開できるわけだが。 まあ話を平たくすると、いつでもできるわけだ。 702:700 04/06/30 23:25 >>701 Lispの評価器に関する知識が必要な話を マクロ=プリプロセッサという世界のの人に 今説明しても混乱するだけかと 703:デフォルトの名無しさん 04/07/01 00:28 >>698 S式を二回評価すると思ってね。(おおざっぱ) 一回目でプログラムの生成、二回目で生成されたプログラムの実行。 LispはデータもプログラムもS式だから、 こういうのは機構的にもプログラミング的にも簡単。 一度遊んでみると良い。 704:デフォルトの名無しさん 04/07/01 12:02 C, C++だと MYMACRO(a,b,c) { ... } // a,b,c,..は可変個引数 から int a=0; int b=1; int c=2; ... my_macro_end(a,b,c); を生成するようなのは書けないでしょ? Lispのマクロはできます。 C++やJavaだとデザインパターンなどで似たようなコードをクラス毎にあちこち で書かないといけない(が、C++のテンプレートでは表現できない)ことがある。 そういう場合にパラメータを与えて雛形からコードを生成するスクリプトをRuby などで書くことを考えましょう。 Lispのマクロなら全部Lispだけでできます。
次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
レスジャンプ
mixiチェック!
Twitterに投稿
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch
4974日前に更新/226 KB
担当:undef