Schemeのマクロは変数衝突を「自動的に回避する」と書きましたが、一体どうやって 回避してるんでしょうか。
ローカル束縛(arithmetic-ifにおける変数var)の衝突の回避については、 マクロ展開ルーチンがマクロが挿入する変数varを衝突しないようにリネーム してやることで回避できます。gensymをマクロシステムが自動的にやってくれると 言っても良いでしょう。
- Island Life - Schemeのマクロ
- LOLのdefmacro!gをGaucheで - みずぴー日記
- defmacro - 主題のない日記
- How To Become A Hacker: alambda
- How To Become A Hacker: dlambda
これは・・・
- Let Over Lambda / Schemer 5.7 - 月の塵
- Let Over Lambda / Schemer: 4 - 月の塵
- Let Over Lambda / Schemer: 5.1 - 月の塵
- create syntax-rules with defmacro - 月の塵
あと、これも。togetter を貼りつけてみたいというのもあったので。
勝手にトゥギャりました。誰でも編集できるにしているので、自由に編集してください。
0 件のコメント:
コメントを投稿