评论者:ppotter
附加:002-make-PersistentQueue-implement-Asequential.diff
此补丁是 001-make-PersistentQueue-implement-List.diff 的替代方案。
所以我考虑了你关于 ASeq 的建议,但感觉通过 PersistentQueue 直接实现 ISeq 似乎不太合适。
因此,我将 ASeq 分为两部分 —— 一个是 ASequential,它实现了 j.u.{Collection,List} 并管理了 List-equality 和 hashcodes;另一个是 ASeq,坦白说,似乎不再做什么了。
作为额外的好处,这个补丁还修复了 CLJ-1070,所以我添加了该票证中的测试来证明这一点。它还通过移除所有的 equals/hashcCode 以及所有的 Collection 来整理了 PersistentQueue。
(结果表明,由于 ASeq 已经实现了 Obj, PersistentQueue 实现 Obj 的实际并未成为使用它的障碍。)
期待对这个方法及它与之前补丁和 CLJ-1070 补丁的差异的意见。