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