请在 2024 年 Clojure 状态调查! 中分享您的想法

欢迎!请参阅关于 页面以了解更多关于这个网站的信息。

0
打印

`
(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) 的情况下,传递的是符号。

2 个回答

0

评论者:hypirion

我认为这里的主要“问题”在于 fn 的未经文档记录的功能。(fn (link: x) x) 是一个在语义上工作的函数,但 (fn (link: x) x) 会展开成 (fn ((link: x) x))。匿名函数字面量展开成 (fn ((link: gensyms) (...)),因此它也接受如 (fn (link: x) x) 这样的表达式。pprint 应该打印使用 fn 直接使用的表达式,还是应该“只是”忽略它?

0
参考:https://clojure.atlassian.net/browse/CLJ-1181(由 devn 报告)
...