在其他命名空间中应用宏

时间:2012-08-01 11:56:45

标签: file clojure macros namespaces dsl

我有类似dsl的东西数据的文件。在那里,我想要研究一些基于s表达式的信息。我有一些跑步者来处理这些文件。

runner.clj

 (require '[data :as d])
 ;processing

data.clj

 (ns  data)
 (defmacro data [s] (println (str s)))

 ;dsl like stuff goes here
 (data "foo")

如何从defmacro等数据文件中删除非dsl?

欢迎任何带有类似解决方案的源代码链接。

1 个答案:

答案 0 :(得分:2)

; dsl.clj
(ns dsl)
(defmacro data ...)

; data.clj
(ns data
  (:require dsl))

(dsl/data ...)

use

; data.clj
(ns data
  (:use [dsl :only (data)]))

(data ...)