Thanks! It's pretty useful. Regards, Shantanu
On Jan 26, 9:27 pm, Ken Wesson <kwess...@gmail.com> wrote: > On Wed, Jan 26, 2011 at 10:58 AM, Shantanu Kumar > > <kumar.shant...@gmail.com> wrote: > > Hi, > > > I have created some 'deftype' objects and 'extend'ed > > clojure.lang.ILookup to them to make them behave like maps. How can I > > get the clojure.pprint/pprint to pretty-print them like maps? > > A deftype can override toString like this: > > user=> (deftype Foo [n] > java.lang.Object > (toString [this] (str "Foo<" n ">"))) > user.Foo > user=> (Foo. 3) > #<Foo Foo<3>> > user=> > > It still gets printed the way generic objects normally do, though: > #<Classname resultOfCallingToString>. > > Fortunately, pprint lets you override this behavior by adding methods > to a multimethod called *simple-dispatch*: > > user=> (defmethod clojure.contrib.pprint/*simple-dispatch* Foo [x] > (print (.toString x))) > #<MultiFn clojure.lang.MultiFn@795f24> > user=> (Foo. 3) > Foo<3> -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en