У меня есть класс Java Vector2
, который я хотел бы убедить «отлично играть» с читателем Clojure.Кругооборот Java-класса через принтер и считыватель Clojure
(def a (vec2 1 2))
(print-str a)
=> "#<Vector2 [1 2]>"
В идеале я хотел бы класс, чтобы распечатать в форме, которая может быть прочитана читателем Clojure. то есть я хотел следующий вернуться верно:
(= a (read-string (print-str a)))
Что является лучшим способом достижения этого кругооборота возможности?
Вы не хотите привлекать к 'EvalReader', я полагаю? –
@Marko: открыт для предложений. Он специально не предназначен для внешнего API - для удобства в REPL и простой сериализации/десериализации. – mikera
Я думаю, что с 'read-eval' осталось до истины, читатель будет знать, что делать с' # = (Vector2. 1 2) '. –