在 REPL 中使用队列文字时出现 RuntimeException
RuntimeException when using queue literal in REPL
所以我才刚刚开始我的 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
实施的更广泛主题的领域,但我并没有做很多解决原始问题的进展。任何关于为什么会发生此异常 is/might 的见解将不胜感激。
谢谢。
#queue []
语法存在于 clojurescript 中,但不存在于 JVM clojure 中。可以参考clojure.lang.PersistentQueue/EMPTY
,这是一个空队列。
#queue
文字仅存在于 ClojureScript 中,因此具有 Clojure 本身的 REPL 无法解析它。其他(例如,#uuid)文字存在于两者中。由于通用文字有效,但 #queue
无效,这表明您实际上是 运行 Clojure REPL 而不是 CLJS REPL。
clojurescript-unraveled 提供 instructions for setting a REPL with Nashorn, Node.js, or Browser. Another option is to use a figwheel REPL,它连接到浏览器。
所以我才刚刚开始我的 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
实施的更广泛主题的领域,但我并没有做很多解决原始问题的进展。任何关于为什么会发生此异常 is/might 的见解将不胜感激。
谢谢。
#queue []
语法存在于 clojurescript 中,但不存在于 JVM clojure 中。可以参考clojure.lang.PersistentQueue/EMPTY
,这是一个空队列。
#queue
文字仅存在于 ClojureScript 中,因此具有 Clojure 本身的 REPL 无法解析它。其他(例如,#uuid)文字存在于两者中。由于通用文字有效,但 #queue
无效,这表明您实际上是 运行 Clojure REPL 而不是 CLJS REPL。
clojurescript-unraveled 提供 instructions for setting a REPL with Nashorn, Node.js, or Browser. Another option is to use a figwheel REPL,它连接到浏览器。