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
。