欢迎!请参阅关于页面,了解更多关于其工作方式的信息。
Rich在今天IRC中提到,他希望能有一个clojure.core/range的reducer实现。既然我已经弄懂了如何进行迭代,我想在晚上结束前一并解决range问题。现在提前提出这个issue,以通知其他对做此事感兴趣的人。
由:jasonjckn发表的评论
是否应该让r/range返回可序列化和计数的东西?
如果是这样,我将为r/repeat做同样的事情。
由:amalloy发表的评论
我概述了问题和选项。我不太熟悉开发wiki,找不到正确的位置放置这个。'release.next'似乎还是关于1.4的问题,不知道是否“适当”为此创建一个新的类别。在找到一个更好的家园之前,它可以在(链接:https://gist.github.com/1586b2460329dde1c374 文本:作为一个gist)使用。
这是一个包含Rich建议“回滚”状态的单一补丁:分别r/range和r/iterate函数。自从完成Rich要求的编写后,我没有听到任何反馈,所以目前没有进一步进展;如果需要除了这个补丁之外的东西,请告诉我。
评论者:richhickey
我更喜欢不将这种方法应用于新类型。也许这段代码太DRY(Don't Repeat Yourself)了?它在一个补丁中做了很多,这使得解析和接受变得困难。这增加了范围,切换了向量折叠的实现等。它能否拆分成单独的票据,每个票据都基于上一个构建,例如,一个票据可以是:捕获用于类似事物的向量折叠实现以供重用。
没问题,我应该在周末将其拆分开。我还会看看是否将按半折叠转变成一个由Range/Vector使用的函数,而不是扩展到它们上的函数。
按照要求,我已经将这个问题的较大补丁拆分成四个较小的票据。其他三个是:CLJ-1045、CLJ-1046和CLJ-992。
CLJ-1045 包含按半折叠的实现,因此此补丁必须在 CLJ-1045 被接受后才可应用。本票不依赖于其他两个,但如果在它们之前合并,则会出现轻微的合并冲突。
评论者:gshayban
范围现在可减少了。
我们应关闭此项。1.7中没有涵盖的东西是可折叠方面。