Clojure 2024 年度调查中分享您的想法!

欢迎!请查阅关于页面,了解此功能的一些更多信息。

0
REPL

user=> (source clojure.core.protocols/coll-reduce) 源文件未找到

但是,由于协议函数的var的元数据指向协议var,而协议var知道定义它的文件和行号,因此可以很容易地将'source'改进为如下所示

user=> (source clojure.core.protocols/coll-reduce) (defprotocol CollReduce "可以实现比first/next递归更快reduce操作 collects类型的协议。由clojure.core/reduce调用。基线实现通过Iterable定义。"(coll-reduce [coll f] [coll f val]))

3 个答案

0

评论者:[email protected]

向 clojure.repl/source 添加一个单行补丁,以便它可以找到给定协议函数的协议定义。

0

评论者:jafingerhut

补丁 0001-Add-support-for-protocol-fns-to-repl-source.-CLJ-1088.patch 无法干净地应用于 Cloujure master 上 2014 年 1 月 31 日提交的补丁,可能是因为对 CLJ-1176 补丁的修补。我尚未研究更新它的难易程度。

0
...