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

欢迎!请查看关于页面以了解更多关于如何使用本站的信息。

+1
集合

我在某些情况下想知道某个值是否为 transient,以便知道是否应该调用 assoc(image:或assoc, conj)或conj等。

此补丁添加了作为断言函数的 transient?

11 个答案

0

评论者:alexmiller

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

0

评论者:devn

Alex:我猜会是这种情况!抱歉,我已经更新了补丁。现在它包含了一个文档字符串,并测试了 transient? 的 #{}, (link: ), 和 {}。

谢谢!

0

评论者:alexmiller

谢谢 - 请不要使用“补丁”或“测试”这样的标签 - 这些标签已经被补丁字段覆盖。

0

评论者:devn

哎呀,Alex,对不起造成了混淆。我第一次假设您去掉“补丁”标签是为了标志这个条目仍然需要一个经过验证的补丁。我的错。

0

评论者:jafingerhut

Patch 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

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

0

评论者:devn

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

0

评论者:jafingerhut

Patch 0003-Add-transient-predicate.patch,日期为2013年8月6日,由于在2014年8月29日对Clojure进行了某些提交,不再干净地应用于最新的主版本。在那一天之前,它可以干净地应用。

我还没有检查更新此补片的难易程度。

0
by

评论者:devn

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

0
by
...