)のサプリメンタリーのような内容です。M4は基本設計がシンプルイズベスト、という感じのところがあり(ストレイチーさんによるGPMはたった250語で実装されていたそうです)、いろいろと「現代風に作り直したら?」と考えたくなるところがあります。そのうちの一つとして、定義は定義だけをまとめたファイルから読み、マクロ処理の対象中では定義を行わないようにする、というものが考えられます。M4でも、運用でそのように制限することはできますが、定義が混在することで可能になっているテクニックが使えないということになります。一部のプログラミング言語には、関数名や手続き名に代入することで、関数やプロシージャからの返り値を指定する、という文法があります。これをマクロを使って解決したい、とします。M4ファイルでは次のようになります。`}')dnlBEGIN_FUNC(`sample')hogeRETURN(`42')END_FUNC()これをM4で処理すると、次のようになります。42}(func_nameという名前がぶつかるとまずい、とか、END_FUNCでundefしたほうが良い、とか色々あるんですが、そのへんは気にしないことにしてください)定義が混在できることで、こういったことが簡単にできますが、定義を分離したうえでこれを実現するとなると、変数とか何か別の仕掛けを作り込まないといけなくなります。月別アーカイブMathJax読み込みはてなブログをはじめよう!metanestさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。