作者: 機械伯爵 | |
日時: 2009/3/4(13:29) |
初心者ブースに書こうか、雑談ブースに書こうか迷ったのだけど「教えを請う」な内容なのでココで。 で、聞くのがいきなり「初心者無用」のマクロ。 マクロ、という言葉の一般定義になるとわけわからん(アセンブル言語のマクロとExcelのマクロは流石に違う)ので、「関数などが定義できる言語で、あえて関数と書かずにマクロと書いているもの」って何? を、どなたか教えて下さい。 私は「呼び出す」関数に対し「マーキングしてあるトコロにコードを広げる」つまり「そっくりそのコードが書いてあることに『する』」のがマクロだ(C言語で言うところのマクロは確かコレの筈)と思ってたのですが、Common LispやらSchemeやらの本を読んでたら、だんだんわかんなくなりました。 ……っていうか、具体的に言えばPythonでeval関数やexec関数使うのって、そのまま『マクロ』と呼んでいいのでしょうか、というお話(コレ切ろうと思えば、名前空間を切り離したブロックとして実行もできるので) 以前に思いっきり『これがマクロだ!』とかブログに書いていた人間が言う言葉ではないのだけど…… /機械伯爵/来年度の仕事、調整中/