Schemeマクロでは、「R6RS構文レコードAPIを使用して」レコードタイプfoo
(デフォルトではmake-foo
というコンストラクタを定義する)を定義する方法など、「派生」識別子を作成するのが一般的です。私は自分のマクロで似たようなことをしたいと思っていましたが、標準ライブラリの中には何のきれいな方法も見つけられませんでした。"派生"識別子を作る最もクリーンな方法は?
(define (identifier-add-prefix identifier prefix)
(datum->syntax identifier
(string->symbol (string-append prefix
(symbol->string (syntax->datum identifier)))))
私は、データムに文字列の中に、そのシンボルに変換(識別子とする)構文オブジェクトに変換するには、先頭に追加接頭辞を持つ新しい文字列を作るにその文字列を変換:私はこれを書いてしまいました最後にシンボルをidentifier
という同じ構文環境の識別子に変換します。
これはうまくいきますが、うっとりしているようです。これを行うクリーナーかイディオムの方法がありますか?