2024 Clojure状态调查!中分享你的想法。

欢迎!有关如何工作的更多信息,请参阅关于页面。

+1
Collections

我遇到过一些情况,我想检查某个事物是否是转瞬即逝的,以便知道是否应该调用assoc(image:或asso)或conj等。

此补丁为predicate fn添加了transient?

11个答案

0

评论者:alexmiller

需要补丁字符串和测试。

0

评论者:devn

亚历克斯:我想这会是这种情况!为此表示歉意。我已经更新了补丁。现在它包括补丁字符串,并对transient?的#{}, (link: ), 和 {}进行了测试。

谢谢!

0

评论者:alexmiller

谢谢 - 请不要使用标签"补丁"或"测试",因为它们已被补丁字段覆盖。

0

评论者:devn

啊,对不起搞混了,Alex。我以为你第一次已经把“补丁”作为标签移除了,以便标记此问题仍然需要一个审核过的补丁。是我的错误。

0

评论由:jafingerhut发表

补丁 0001-Add-transient-predicate.patch 日期为 2014 年 3 月 17 日,对最新的 Clojure master 应用顺利,但未通过测试,因为新函数 transient? 没有提供 :added 元数据。请参考 clojure.core 中的其他 Clojure 函数,例如。

此外,在运行测试时还生成了新的警告

警告:transient? 已经引用:#'clojure.core/transient? 在命名空间:clojure.test-clojure.data-structures,正在被:#'clojure.test-clojure.data-structures/transient? 替换

在测试文件 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发表

补丁 0002-Add-transient-predicate.patch 日期为 2014 年 3 月 22 日,由于今天早些时候提交的一些更改,不再能够修改到最新的 Clojure master。我还没有检查这个补丁是否容易更新。

0

评论者:devn

我已将补丁更新为 0003-Add-transient-predicate.patch。此补丁能顺利地应用于最新的 master 版本。

0

评论由:jafingerhut发表

补丁文件Patch 0003-Add-transient-predicate.patch,日期为2013年8月6日,在2014年8月29日对Clojure进行了部分提交后,不再干净地应用于最新主分支。在此之前,该补丁可以干净地应用。

我还没有检查更新这个补丁的难易程度。

0

评论者:devn

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

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