【发布时间】:2021-11-20 03:25:38
【问题描述】:
在 Guile 中,我正在努力学习 define-syntax 和 syntax-rules。我的印象是方案宏不会评估他们的论点,但我的似乎正在这样做:
(define-syntax foo
(syntax-rules ()
((foo word)
(if (eqv? word 'bar) (begin (write "Caller said BAR!") (newline)))
)))
如果我用(foo bar) 调用它,我会收到错误消息
未绑定变量:bar
如果我用(foo 'bar) 调用它,我会得到预期的
“来电者说 BAR!”
这看起来好像是在应用宏之前对参数进行评估。
【问题讨论】:
标签: scheme guile syntax-rules