2017-08-10 27 views
3

因此,我剛開始使用clojurescript體驗,並跟隨clojurescript-unraveled網頁書籍來了解基礎知識。主要是一個平穩的過程,但我用#queue []文字碰到了一個障礙。我使用運行Clojure 1.8.0,Java 1.8.0_112-b16和Leiningen 2.7.1的lein repl在REPL中使用隊列文字時的RuntimeException

當我把在下面輸入:

(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實現的更廣泛的主題,但我並沒有在解決原始問題上取得很大進展問題。任何有關爲什麼這個例外是/可能發生的見解將非常感激。

謝謝。

回答

1

#queue文字只存在於ClojureScript中,所以具有Clojure的REPL無法解決它。其他(例如,#uuid)文字存在於兩者中。由於常用文字工作,但#queue沒有,這表明你實際上運行Clojure REPL而不是CLJS REPL。

clojurescript-unraveled提供instructions for setting a REPL與Nashorn,Node.js或瀏覽器。另一種選擇是使用連接到瀏覽器的figwheel REPL。

3

#queue []語法存在於clojurescript中,但不存在於JVM clojure中。您可以參考clojure.lang.PersistentQueue/EMPTY,這是一個空隊列。

相關問題