【问题标题】:Applying macros in other namespace在其他命名空间中应用宏
【发布时间】:2012-08-01 11:56:44
【问题描述】:

我有类似 dsl 的东西数据的文件。在那里,我想删除一些基于 s-expression 的信息。我有一些处理此类文件的跑步者。

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?

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

【问题讨论】:

    标签: file clojure macros namespaces dsl


    【解决方案1】:
    ; dsl.clj
    (ns dsl)
    (defmacro data ...)
    
    ; data.clj
    (ns data
      (:require dsl))
    
    (dsl/data ...)
    

    或者use:

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

    【讨论】:

    • 非常感谢。使用就是我所需要的。
    猜你喜欢
    • 1970-01-01
    • 2013-02-16
    • 2021-06-24
    • 2011-10-25
    • 1970-01-01
    • 2016-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多