请在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

补丁 0001-Add-transient-predicate.patch(日期为2014年3月17日)可以干净地应用在最新的Clojure主分支上,但由于新函数 transient? 没有冒号加了的元数据,导致测试失败。请参照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主分支上了。我没有检查这个补丁是否简单易懂地进行了更新。

0

评论者:devn

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

0

评论者:jafingerhut

补丁 0003-Add-transient-predicate.patch(日期为2013年8月6日)在2014年8月29日对Clojure做一些提交后,不再能够干净地应用到最新的主分支上。在此之前,它都可以干净应用。

我还没有检查更新这个补丁可能容易或困难。

0

评论者:devn

我已经将补丁更新到了0004-Add-transient-predicate.patch。此补丁适用于master的最新版本。

0
...