define-syntax
是 Racket 实现 macro 的关键字之一。 defmacro
是 使用 symbol-based macro systems 的语言(e.g. Scheme or Common Lisp) 实现 macro 的关键字。
当然 Racket 为了方便从这些语言移植代码,在 compatibility-lib
包对 defmacro
关键字(compatibility/defmacro
)进行兼容。不过 Racket 中不建议使用 defmacro
,而推荐使用 syntax-parse
or define-syntax-parse-rule
。