所以我刚刚开始我的clojurescript体验,并继续使用clojurescript-unraveled网页来了解基础知识。主要是一个平稳的过程,但我使用#queue []
文字遇到了麻烦。我正在使用lein repl
运行Clojure 1.8.0,Java 1.8.0_112-b16和Leiningen 2.7.1。
当我输入以下内容时:
(def pq #queue [1 2 3])
我得到了这个堆栈跟踪:
RuntimeException No reader function for tag queue
clojure.lang.LispReader$CtorReader.readTagged (LispReader.java:1245)
RuntimeException Unmatched delimiter: )
clojure.lang.Util.runtimeException (Util.java:221)
我也尝试了#js
标记文字,并获得了相同的No reader function for tag ...
异常。但是,UUID和时间文字实例按预期工作,没有运行时错误。
我正在深入研究这个问题,现在正处于探索edn规范和cljs.reader
实现的更广泛主题的领域,但我并没有取得很大的进展。解决原始问题。任何关于为什么会发生这种异常的见解都会非常感激。
感谢。
答案 0 :(得分:3)
{1}}语法存在于clojurescript中,但不存在于JVM clojure中。您可以参考#queue []
,这是一个空队列。
答案 1 :(得分:1)
#queue
文字仅存在于ClojureScript中,因此具有Clojure的REPL无法解析它。两者中都存在其他(例如,#uuid)文字。由于常用文字有效,但#queue
没有,这表明你实际上是在运行Clojure REPL而不是CLJS REPL。
clojurescript-unraveled 为Nashorn,Node.js或浏览器提供instructions for setting a REPL。另一种选择是使用连接到浏览器的figwheel REPL。