sha*_*aft 5 clojure clojurescript
在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."))
Run Code Online (Sandbox Code Playgroud)
我正在尝试为 ClojureScript 实现相同的目标,但出现#rd/qux未定义的错误。我正在lein cljsbuild once用来构建项目。这是 ClojureScript 的限制还是cljsbuild在读者得到解决之前构建项目?在这种情况下,如何在 cljsbuild 启动之前强制 leiningen 加载 reader 命名空间?
编辑:请注意,此示例打算在 ClojureScript 源代码中使用阅读器标签,而不是在通过read-string.
目前这是不可能的,但一旦#CLJS-1194和#CLJS-1277得到修复,就会实现。希望这很快就会发生。
如果您想这样做,只需重命名data_readers.clj为data_readers.cljc并使用条件读取器即可。
顺便说一句,你的用例是什么?
#CLJS-1194和#CLJS-1277都已修复,因此应该按预期工作。
| 归档时间: |
|
| 查看次数: |
929 次 |
| 最近记录: |