私はJavaクラスVector2
を持っていますが、これはClojureリーダーで「うまくいく」ように説得したいと思います。ClojureプリンタとリーダによるJavaクラスのラウンドトリップ
(def a (vec2 1 2))
(print-str a)
=> "#<Vector2 [1 2]>"
理想的には、クラスをClojureリーダーが読み取れる形式で印刷したいと思います。すなわち、私は以下を真に戻すことを望みます:
(= a (read-string (print-str a)))
このラウンドトリップ機能を達成する最良の方法は何ですか?
あなたは私が思う、 'EvalReader'が関与したくないですか? –
@マルコ:提案に開放されています。特に外部APIを意図したものではありません.REPLの利便性と簡単なシリアライズ/デシリアライゼーションのためのものです。 – mikera
私は 'read-eval'を真のままにしておくと、読者は'#=(Vector2.1.2) 'で何をすべきか知っています。 –