欢迎!请参阅 关于 页面,了解有关该功能的更多信息。
Rich 今天在互联网中提到,他希望大家能够实现 clojure.core/range 的聚合器。既然我已经搞清楚如何进行迭代,我想在今晚结束前也将 range 函数搞定。现在提前打开这个问题,以便通知其它感兴趣的人。
评论者:jasonjckn
是否应该让 r/range 返回一个可序列化且可计数的对象?
如果是这样,我会为 r/repeat 也做同样的处理。
评论者:amalloy
我已经草拟了一个关于问题和选项的描述。我对开发维基不是很熟悉,不确定应该在哪里发布这个。'release.next' 似乎仍然是关于 1.4 的问题,我不知道是否应该为这个问题创建一个全新的分类。它可以在以下链接中找到(链接: https://gist.github.com/1586b2460329dde1c374 文本:作为一个 gist),直到找到一个更好的存放地。
这里有 Rich 提出要“回滚”到的状态的单独补丁总结:将 r/range 和 r/iterate 函数分开。自从我编写了 Rich 要求的说明以来,我没有听说任何反馈,因此目前没有进一步进展;如果需要除了这个补丁以外的其他东西,请告诉我。
评论人为:richhickey
我更喜欢不看到新类型中使用extend。也许这段代码太DRY了?此外,它在一个补丁中做了很多事情,这使得它很难解析和接受。这增加了范围,切换向量折叠的实现等。它能否被分成单独的票据,每一步都建立在前一步的基础上,例如,一个票据可以是:捕获向量折叠实现,以便由类似的事物重用。
好的,我应该在周末把它拆分开来。我还会考虑将“折半折叠”转换成一个函数,它被Range/Vector使用,而不是扩展到它们之上的函数。
应要求,我已经将这个问题的大补丁拆分为四个较小的票据。其他三个是:CLJ-1045、CLJ-1046和CLJ-992。
CLJ-1045包含折半折叠的实现,因此,在CLJ-1045被接受之前,此补丁不能应用。此票据不依赖于其他两个,但在合并它们之前会有轻微的合并冲突。
评论人为:gshayban
范围现在可减少。
我们也应该关闭这个。1.7中没有涵盖的唯一一件事是可折叠性。