In Clojure 1.5.0, come posso fornire una stampante carina personalizzata per il mio tipo di record, definito con defrecord.pretty-printing un record utilizzando un metodo personalizzato in Clojure
(defrecord MyRecord [a b])
(defmethod print-method MyRecord [x ^java.io.Writer writer]
(print-method (:a x) writer))
(defmethod print-dup MyRecord [x ^java.io.Writer writer]
(print-dup (:a x) writer))
(println (MyRecord. 'a 'b)) ;; a -- OK
(clojure.pprint/pprint (MyRecord. 'a 'b)) ;; {:a a, :b b} -- not OK, I want a
Vorrei clojure.pprint/pprint
usare anche la mia stampante cutsom (che ora, deve solo pretty-stampa tutto ciò che è nel campo a
del record a scopo illustrativo).
Basta lasciare questo qui, perché è per questo che sono arrivato qui: la funzione di 'pprint-myrecord' dovrebbe scrivere a' * out * ', non restituisce una stringa. – pascal