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
。