java - 在 REPL 中使用队列文字时出现 RuntimeException

标签 java clojure clojurescript leiningen read-eval-print-loop

所以我才刚刚开始我的 clojurescript 体验,并跟随 clojurescript-unraveled了解基础知识的网络书。大部分过程都很顺利,但我在使用 #queue [] 文字时遇到了障碍。我正在使用运行 Clojure 1.8.0、Java 1.8.0_112-b16 和 Leiningen 2.7.1 的lein repl

当我输入以下内容时:

(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 实现的更广泛主题的领域,但我不是在做一个在解决原始问题方面取得了很大进展。非常感谢任何关于为什么/可能会发生此异常的见解。

谢谢。

最佳答案

#queue [] 语法存在于 clojurescript 中,但不存在于 JVM clojure 中。可以引用clojure.lang.PersistentQueue/EMPTY,这是一个空队列。

关于java - 在 REPL 中使用队列文字时出现 RuntimeException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45604847/

相关文章:

java - 为主体中包含更多部分的 wsdl 生成客户端代码

catch block 中的 Java 异常

java - 由 : com. fasterxml.jackson.core.JsonParseException 引起:无法识别的 token 'okhttp3':期待(JSON 字符串')

serialization - 如何使用\*print-dup\* 在 clojure 中打印记录?一个简单的案例

clojure - 如何从 clj 宏访问编译时 cljs var 元数据?

clojure - cider-connect-clj 无法连接到 nrepl.server/start-server

java - list 中引用的资源不能因配置而异?

ClojureScript 循环依赖

loops - 为什么 Clojure 的范围只迭代 32 次?

clojurescript - 试剂:如何从 component-will-receive-props 中获取新的 props?