欢迎!请参阅关于页面以了解更多关于该功能的信息。
Rich 在今天对IRC说,他欢迎一个 clojure.core/range 的减法器实现。既然我已经想清楚如何迭代,我打算今晚完成range的实现。提前把这个问题打开,以便让任何有兴趣的人知道。
评论由:jasonjckn
应该让 r/range 返回一个可迭代并计数的对象吗?
如果是这样,我也会为 r/repeat 做同样的处理。
评论由:amalloy
我已经概述了问题和选项的描述。我不太熟悉开发wiki,也不知道应该在哪里放这个。'release.next' 似乎仍然关于1.4的问题,不知道是否“合适”为这个问题创建一个全新的分类。在找到一个更好的家园之前,它可以在这里找到(链接:https://gist.github.com/1586b2460329dde1c374 文本:作为一个gist)。
这是Rich建议退回到的状态的一个总结性补丁:“分离r/range和r/iterate函数”。自我在Rich要求的写作用文中没有得到反馈以来,我没有进一步进展;如果需要的不是这个补丁,请告诉我。
被:richhickey发表的评论
我更喜欢不使用new类型的这种extend。也许这段代码过于冗余?另外,它在一个patch做了很多事,这使得解析和接受都很困难。这增加了范围,更改了vector folds实现等。能否将其拆分为单独的票据,以实现上一个步骤的构建,例如,一个票据可以是:捕获vector fold实现,使其可以被类似的东西重用。
好吧,我应该在周末将其拆分。我还会看看是否将半折函数转换为Range/Vector使用的函数,而不是扩展到它们上的函数。
如请求,我已经将此问题的较大补丁拆分为四个较小的票据。其他三个是:CLJ-1045,CLJ-1046和CLJ-992。
CLJ-1045包含半折的实现,因此直到CLJ-1045被接受之前,这个补丁不能应用。此票据不依赖于其他两个,但如果在它们之前合并,将会有轻微的合并冲突。
被:gshayban发表的评论
范围现在是可减少的。
我们应该关闭这个。1.7中没有涵盖的是可折叠方面。