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