When displaying a
hierarchical data structure consisting of lists, sets and maps, use the
clojure.pprint package. You can dynamically rebind options to change the
default number base, desired column width, etc. Here are some examples:
user> (def posts [{:id 1000 :summary "This is the first post" :tags #{"java" "clojure" "pprint"}}
{:id 1001 :summary "
Very very very very very very very very very very
long summary" :tags #{"java" "clojure" "pprint"}}])
#'user/posts
user> (use 'clojure.pprint)
nil
user> (pprint posts)
[{:summary "This is the first post",
:id 1000,
:tags #{"java" "clojure" "pprint"}}
{:summary "
Very very very very very very very very very very
long summary",
:id 1001,
:tags #{"java" "clojure" "pprint"}}]
nil
user> (binding [*print-base* 2]
(pprint posts))
[{:summary "This is the first post",
:id 1111101000,
:tags #{"java" "clojure" "pprint"}}
{:summary
"Very very very very very very very very very very long summary",
:id 1111101001,
:tags #{"java" "clojure" "pprint"}}]
nil
user> (binding [*print-right-margin* 30]
(pprint posts))
[{:summary
"This is the first post",
:id 1000,
:tags
#{"java"
"clojure"
"pprint"}}
{:summary
"Very very very very very very very very very very long summary",
:id 1001,
:tags
#{"java"
"clojure" "pprint"}}]
nil