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
。我怀疑这是一个 bug,因为我没有在那里看到任何解释如何在此时触发美化打印程序的注释。
它似乎应该使用类似 (fn [data] (with-out-str (pprint data)))
的东西,而不是 print-str
。