3

私はちょうど私のclojurescriptエクスペリエンスを開始しており、clojurescript-unraveledウェブブックと一緒に基本を取ります。主にスムーズな処理を行っていますが、#queue []リテラルを使用しています。私はlein repl Clojure 1.8.0、Java 1.8.0_112-b16、およびLeiningen 2.7.1を使用しています。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はそうではありません。これは、実際にCLJS REPLの代わりにClojure REPLを実行していることを示唆しています。

clojurescript-unraveledは、Nashorn、Node.js、またはBrowserでinstructions for setting a REPLを提供します。別のオプションは、ブラウザに接続するfigwheel REPLを使用することです。

3

#queue []構文はクロージャレットに存在しますが、JVMクロージャでは存在しません。空のキューであるclojure.lang.PersistentQueue/EMPTYを参照することができます。

関連する問題