2010/05/10

『Schemeのマクロは変数衝突を「自動的に回避する」』

Schemeのマクロは変数衝突を「自動的に回避する」と書きましたが、一体どうやって 回避してるんでしょうか。
ローカル束縛(arithmetic-ifにおける変数var)の衝突の回避については、 マクロ展開ルーチンがマクロが挿入する変数varを衝突しないようにリネーム してやることで回避できます。gensymをマクロシステムが自動的にやってくれると 言っても良いでしょう。
これは・・・
syntax-rules syntax-case で defmacro!, dlambda, alambda, plambda ?



あと、これも。togetter を貼りつけてみたいというのもあったので。

勝手にトゥギャりました。誰でも編集できるにしているので、自由に編集してください。

LET OVER LAMBDA Edition 1.0プログラミングGauche


0 件のコメント:

コメントを投稿