2024 Clojure 状况调研!中分享您的想法。

欢迎!请参阅关于页面以了解此工作的更多信息。

+1
Collections

我遇到过需要检查某个元素是否为 transient,以确定是否应该调用 assoc(image: 或 assoc, conj) 或 conj 等等情况。

此补丁程序添加了 transient? 作为谓词函数。

11 个答案

0

评论由:alexmiller 制造

补丁需要文档字符串和测试。

0

评论由:devn 制造

Alex:我以为会是这样!抱歉为此。我已经更新了补丁。它现在包括文档字符串并测试了 #{}, (link: ), 和 {} 的 transient?

谢谢!

0

评论由:alexmiller 制造

谢谢 - 请不要使用标签“补丁”或“测试” - 这些都由补丁字段覆盖。

0

评论由:devn 制造

啊,对不起,Alex。我之前以为你将“补丁”作为标签删除了,以为这个工单还需要经过审核的补丁。是我的错误。

0

评论者:jafingerhut

2014年3月17日的补丁0001-Add-transient-predicate.patch可以干净地应用到Clojure master的最新版本,但是由于新函数transient?没有:added元数据,所以测试未通过。请参考clojure.core中的其他Clojure函数以获取示例。

在运行测试时还会生成一个新的警告

警告:transient? 已在namespacre:clojure.test-clojure.data-structures中定义,并正被替换为:clojure.test-clojure.data-structures/transient?

在test文件data_structures.clj中有一个旧的(但等效的)transient?定义,在将其添加到clojure.core时应将其删除

0

评论由:devn 制造

@Andy,我没有添加:added元数据的原因是我不确定这个补丁何时以及是否会被接受,因此我也无法确定它是否会悄悄地进入1.6.X或1.7。目前,我已将其放在1.7中。如果它有提前加入的可能,请告知我,我会进行调整。

关于警告:良好的捕获。我已经提交了一个新的补丁,该补丁从data_structures.clj中移除了transient?的私有版本。所有测试都通过了。

补充编辑:截至目前评论的补丁最新版本为0002-Add-transient-predicate.patch。

0

评论者:jafingerhut

由于今天早些时间提交了一些变更,导致2014年3月22日的补丁0002-Add-transient-predicate.patch不再能干净地应用到Clojure master的最新版本。我尚未检查这个补丁是否可以轻松更新。

0

评论由:devn 制造

我已经将补丁更新为0003-Add-transient-predicate.patch。这个补丁可以干净地应用到主版本的最新版本。

0

评论者:jafingerhut

补丁0003-Add-transient-predicate.patch,日期为2013年8月6日,在2014年8月29日对Clojure提交了一些更新之后,已无法干净地应用于最新的master分支。在那之前,它可以正常应用。

我尚未检查更新此补丁的难易程度。

0

评论由:devn 制造

我已经将补丁更新到0004-Add-transient-predicate.patch。此补丁可以干净地应用于master的最新版本。

0
...