Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

macroとr7rsに関するyharaのブックマーク (2)

  • マクロの健全性または如何にして私はerマクロを使うのをやめsyntax-caseを愛するようになったか

    オランダの生活、自身が行っているSagittarius Schemeの開発日誌、 その他雑多なことをつづってます。 メモワール(Memoir)という単語をTwitter上で見かけて、自分も何か(主にあほなこと)を書きたくなっただけ。 Schemeにはhygienic macroなるものがあり、清潔なマクロとか健全なマクロとか訳されるのであるが、それを使うと変数の衝突などの問題をあまり考えなくてもよくなるである。Scheme界では長年このマクロについて議論されてきたらしいのだが、R6RSで終に低レベルかつ健全なマクロの一つであるsyntax-caseが標準に入ることになった。これでマクロ展開時に式変形以上のことができると喜んだのもつかの間、R7RSではまた不便なsyntax-rulesだけに戻されてしまった。理由はよく分からない。風の噂ではR7RS-largeではExplicit Renam

    yhara
    yhara 2015/01/13
    “風の噂ではR7RS-largeではExplicit Renamingと呼ばれる別の低レベルな健全マクロが入るとされている”
  • 同時に挿入された識別子 - 主題のない日記

    Scheme のローカルマクロについて知った性質があるのでメモしておく。 例えばこのようなプログラムが有った場合に画面に表示されるのは 1, 2, 3 の内のいずれだろうか。 私は 1 が表示されるものと思ったのだが、 3 が正しい挙動とのこと。 (import (scheme base) (scheme write)) (define-syntax bar (syntax-rules () ((_ m body) (let ((m 1)) (body))))) (define-syntax foo (syntax-rules () ((_ m body) (let ((n 2)) (let-syntax ((%body (syntax-rules () ((_) body)))) (bar m %body)))))) (let ((n 3)) (display (foo n (displ

    同時に挿入された識別子 - 主題のない日記
  • 1