我正在尝试编写一个宏,将表达式中的一些文字替换为一个值,例如(substitute 3 (+ 4 1 _ 1 5))
这是我目前所拥有的
(define-syntax substitute
(syntax-rules (_)
((substitute val (_ e1 ...))
(val e1 ...))
((substitute val (e1 _ e2 ...))
(e1 val e2 ...))
((substitute val (e1 e2 _ e3 ...))
(e1 e2 val e3 ...))))
我如何概括这一点?或者真的,我应该如何解决这个问题?