【发布时间】:2010-11-14 00:21:37
【问题描述】:
我正在练习编写宏,但我似乎无法让 defn 工作。
我的语法是:(my-define name parameter body)
忽略 & 参数和递归例程,如何将名称绑定到 (fn[parameter] body)?
【问题讨论】:
-
您可以使用
macroexpand在repl 中查看宏扩展为什么。例如。(macroexpand '(defn foo [] 1))。这在调试您自己的宏以及尝试从 clojure/core 宏中学习时都很有用。 -
也可以使用
(source defn)直接检查源代码。