Welcome! Please see the About page for a little more info on how this works.

0 votes
in Clojure by
edited by

In the below snippet, you can see that the pprint function isn't formatting the output properly and the output is exactly same as that of println. What is the issue here?

(clojure.pprint/pprint {:a :b
                        :c (vec (range 20))})
{:a :b, :c [0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19]}
(println {:a :b
          :c (vec (range 100))})
{:a :b, :c [0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99]}    => nil
(println {:a :b
          :c (vec (range 20))})
{:a :b, :c [0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19]}
=> nil

1 Answer

0 votes
by
edited by

What are you expecting to happen?

pprint tries to stay within clojure.pprint/*print-right-margin* (default=72), and this fits so it's a single line. Compare:

(binding [clojure.pprint/*print-right-margin* 52] (clojure.pprint/pprint {:a :b :c (vec (range 20))}))

(binding [clojure.pprint/*print-right-margin* 55] (clojure.pprint/pprint {:a :b :c (vec (range 20))}))

(binding [clojure.pprint/*print-right-margin* 72] (clojure.pprint/pprint {:a :b :c (vec (range 20))}))
by
I've added another example to the question.
by
Still not sure what you're looking to get as a desired output.
...