次のような新しい識別子を作成するマクロが必要です
(new-name first second) => first-second
新しいトップレベルのバインディングを定義するために使用できる
(define-syntax define-generic
(syntax-rules ()
((define-generic (name a b ...))
(begin
(define (new-name name data) 15) ; <= create a new binding
(define name (lambda (a b ...)
(add (new-name name-data) 7)))))) ; <= use new identifier
私が設定した場合!「new-name」バインディングの値である場合、新しく作成されたプロシージャに影響するはずです。