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: gensyms) (...)),因此它也接受类似 (fn (link: x) x) 的表达式。请问 ppint 应该将使用 fn 强调的表达式格式化打印,还是仅仅是忽略它?

0
...