2024 Clojure状态调查!中分享你的想法。

欢迎!请参阅关于页面了解有关此功能的一些更多信息。

0
Clojure
编辑

在下面的代码片段中,你可以看到pprint函数输出格式不正确,输出与println相同。这里的问题是什么?

(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 答案

0

编辑

你期望会发生什么?

pprint尝试保持在clojure.pprint/*print-right-margin*(默认=72)内,因此它在单行内,与下面比较

(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
我为问题添加了另一个例子。
by
仍然不确定你希望得到什么样的输出。
...