cl-format
的文档声称它与 CL 版本的格式完全兼容。然而,在 CL 中,~A
指令(打印美观)可以漂亮地打印相应的参数。例如,(format out "~A" some-list)
输出与 (pprint some-list out)
相同。然而,在 Clojure 中,(cl-format out "~A" some-list)
将 some-list
的内容输出为 单行。
是否有人知道是否可以正确实现这一点?我看到了动态变量 print-pretty,但它在 ~A
上似乎没有效果。
经过一番搜索,我发现我认为是罪魁祸首的问题。根据 cl_format.clj
中的第 1338 行,似乎 ~A
无条件地分派到 print-str
而不是某种形式的 pprint-to-str
。我怀疑这是一个错误,因为我没有在那里看到任何解释说漂亮打印机是如何在这里触发的。
它应该使用类似于 (fn [data] (with-out-str (pprint data)))
的方式,而不是使用 print-str
。