Clojure & ClojureScript: clojure.core / read-string, clojure.edn / read-string и cljs.reader / read-string

Я не ясно о связи между всеми этими функциями чтения строки. Ну понятно чтоclojure.core/read-string может прочитать любую сериализованную строку, которая выводитсяpr[n] или дажеprint-dup, Также ясно, чтоclojure.edn/read-string читает строки, отформатированные в соответствии сСпецификация EDN.

Тем не менее, я начинаю с Clojure Script, и не ясно, еслиcljs.reader/read-string соответствовать. Этот вопрос был вызван тем фактом, что у меня был веб-сервис, который генерировал код clojure, сериализованный таким образом:

(with-out-str (binding [*print-dup* true] (prn tags)))

Это производило сериализацию объекта, которая включает типы данных. Тем не менее, это не было доступно для чтенияcljs.reader/read-string, Я всегда получал ошибку такого типа:

Could not find tag parser for = in ("inst" "uuid" "queue" "js")  Format should have been EDN (default)

Сначала я думал, что эта ошибка была брошенаcljs-ajax но после тестированияcljs.reader/read-string в REPL Rhino, я получил ту же ошибку, что означает, что он выбрасываетсяcljs.reader/read-string сам. Это брошеноmaybe-read-tagged-type функция вcljs.reader но не ясно, если это потому, что читатель работает только с данными EDN, или если ...?

Кроме того, изОтличия от Clojure документ, единственное, что сказано:

The read and read-string functions are located in the cljs.reader namespace

Что говорит о том, что они должны иметь точно такое же поведение.

Ответы на вопрос(3)

Ваш ответ на вопрос