我怎么能在Clojure中写一个“defn”宏?

时间:2009-07-25 15:20:05

标签: macros clojure

我正在练习编写宏,但我似乎无法让defn工作。

我的语法是:(my-define name parameter body)

忽略&参数和递归例程,如何将名称绑定到(fn [parameter] body)?

1 个答案:

答案 0 :(得分:20)

您需要转换

(my-define <name> <args> <body>)

(def <name> (fn <args> <body>))

实际上这很简单:

(defmacro my-define [name args body]
  `(def ~name (fn ~args ~body)))