2

syntax-caseR6RSのセクションを見ていると、識別子マクロmake-variable-transformerとして記述されているキーワードが見つかりました。与えられた例は非常に最小限であり、なぜそれが必要なのか、またはどのようなユースケースでそれが必要なのかを理解するつもりはありません. その使用例をさらに見つけることも困難です。おそらく、何らかの形式の構文変換が可能になりますか、それともよりエレガントになりますか?

4

2 に答える 2

2

http://www.r6rs.org/final/html/r6rs-lib/r6rs-lib-ZH-13.html#node_sec_12.3を読んだ後、私の見解は次のとおりです。

mac構文変換子の場合

(mac foo (bar baz))s-expr 全体を変換の結果で(SOMETHING)置き換え(foo mac bar)ます。mac(foo SOMETHING bar)

通常(set! mac 'foo)、トランスフォーマーはセット式の左側に表示できないように見えるエラーを通知しますmacが、可変トランスフォーマーの場合は(set! mac 'foo)代わりにmacs-expr 全体を呼び出します。

私の直感では、マクロを使用してデータ型の実装を開始すると、これが役立つことがわかります。

于 2008-12-03T08:26:30.420 に答える
1

make-variable-transformer に関するドキュメントを検索して、これに出くわしました。make-variable-transformer が提案されたという私が抱えていた問題は次のとおりです...

http://groups.google.com/group/comp.lang.scheme/browse_frm/thread/96b07d431f1a66de/777f8e07ae1855f3#777f8e07ae1855f3

ジャック・トレード

于 2009-06-17T18:13:17.220 に答える