【发布时间】:2015-07-15 12:32:31
【问题描述】:
在 Clojure 中,添加自定义阅读器标签非常简单
;; data_readers.clj (on classpath, eg. src/clj/)
{rd/qux datareaders.reader/my-reader}
;; Define a namespace containing the my-reader var:
(ns datareaders.reader)
(defn my-reader [x] 'y)
;; use special tag in other namespace. Readers have to be required first.
(require 'datareaders.reader)
(defn foo [x y]
(println #rd/qux x "prints y, not x due to reader tag."))
我正在尝试为 ClojureScript 实现相同的目标,但收到一个错误,即 #rd/qux 未定义。我正在使用lein cljsbuild once 来构建项目。这是 ClojureScript 的限制还是 cljsbuild 在读者解决之前构建了项目?在这种情况下,如何强制 leiningen 在启动 cljsbuild 之前加载 reader 命名空间?
编辑:请注意,此示例打算在 ClojureScript 源代码中使用阅读器标签,而不是在通过 read-string 读取辅助数据时使用。
【问题讨论】:
标签: clojure clojurescript