欢迎!请参阅关于 页面以了解更多关于这个网站的信息。
`(with-out-str(with-pprint-dispatch code-dispatch
`
(pp/pprint (read-string "(fn* [x] x)"))))
中断,因为这里的格式字符串:[链接](https://github.com/clojure/clojure/blob/master/src/clj/clojure/pprint/dispatch.clj#L378) 期望一个序列。在 (fn* (link: x) x) 的情况下,传递的是符号。
评论者:hypirion
我认为这里的主要“问题”在于 fn 的未经文档记录的功能。(fn (link: x) x) 是一个在语义上工作的函数,但 (fn (link: x) x) 会展开成 (fn ((link: x) x))。匿名函数字面量展开成 (fn ((link: gensyms) (...)),因此它也接受如 (fn (link: x) x) 这样的表达式。pprint 应该打印使用 fn 直接使用的表达式,还是应该“只是”忽略它?