clojurescript中的宏

时间:2014-07-17 08:28:09

标签: clojurescript

我写了一些simple dsl来验证地图,它可以做什么:

(ns foo.validator)

(defrule cannot-foo
  {:message "Value is %s. It cannot equal to string foo"}
  [value]
  (not (= value "foo")))

(defvalidator cannot-foo-validator
  :name [[cannot-foo]])

(cannot-foo-validator {:name "foo"}) ;; {:error <message here>}

在引擎盖下,它将函数绑定到给定的符号,例如cannot-foocannot-foo-validator

如何在clojurescript上使用它?我确实喜欢clojurescript wiki:

(ns cljs.myfoo.core
  (:require-macros [foo.validator :as f]))

它在没有警告的情况下编译,但如果我开始使用它:

(ns cljs.myfoo.core
  (:require-macros [foo.validator :as f]))

(cannot-foo-validator {:name "foo"})

编译时,会投诉No such namespace: foo.validator .....

1 个答案:

答案 0 :(得分:0)

您需要确保foo.validator.clj文件中包含.cljc

相关问题