Как мне использовать \ * print-dup \ * для печати записей в clojure? Простой случай

Я пытаюсь использовать * print-dup *, чтобы разрешить запись закрытых данных в файл а затем перечитайте его, однако у меня возникают проблемы даже с этим простой случай. Что-то я делаю не так? Что мне нужно делать чтобы заставить это работать?

Clojure 1.3.0-alpha3-SNAPSHOT 
user=> (defrecord TreeNode [val left right]) ;;create the record 
user.TreeNode 
user=> (TreeNode. 5 nil nil) 
#:user.TreeNode{:val 5, :left nil, :right nil} ;; it works just fine 
user=> (binding [*print-dup* true] (prn (TreeNode. 5 nil nil))) ;; use *print-dup* to support reading in and preserving type 
#=(user.TreeNode/create {:val #=(java.lang.Long. "5"), :left nil, :right nil}) ;; this is the form we need to copy paste 
nil 
user=> #=(user.TreeNode/create {:val #=(java.lang.Long. "5"), :left nil, :right nil}) ;;trying to copy and paste 
IllegalArgumentException No matching method found: create 
clojure.lang.Reflector.invokeMatchingMethod (Reflector.java:50) ;;we have an error 
user=>
5
задан bmillare 22 December 2010 в 19:11
поделиться