欢迎!请查阅关于页面了解更多关于该功能的信息。
Rich 在今天的 IRC 上提到,他欢迎实现 clojure.core/range 的 reduce 函数。现在我已经弄清楚了如何实现 iterate,我想在今晚结束前也将 range 函数完成。现在提前开启这个议题,以便通知对这项工作感兴趣的其他人。
评论由:jasonjckn 提出
r/range 是否应该返回一个可序列化和可计数的类型?
如果是,我将对 r/repeat 也做同样的处理。
评论由:amalloy 提出
我已经概要介绍了问题和选项。我对开发维基不太熟悉,无法确定在哪里放置这个信息。'release.next'好像还涉及 1.4 版本的问题,我不知道是否应该为此创建一个新的分类。目前可以将这个内容放在[此链接](https://gist.github.com/1586b2460329dde1c374)上,直到找到一个更好的存放地点。
这是一个将Rich建议“回滚”到的状态的单一补丁,即将r/range和r/iterate函数分离。自从完成Rich要求的总结报告后,没有听到任何反馈,因此目前在没有进一步进展;如果需要其他补丁,请告诉我。
评论者:richhickey
我更喜欢不看到以这种方式用于新类型的使用extend。也许这段代码过于DRY(Don't Repeat Yourself,不要重复自己)?另外,它在单个补丁中做了很多事情,这使其难以解析和接受。这个补丁添加了范围范围,切换了向量折叠的实现等。能否将其拆分成独立的工单,每个工单都基于上一个步骤构建,例如:一个工单可以是:捕获可用于类似事务的向量折叠实现。
好的,我应该能够在周末将其拆分。我还会考虑将fold-by-halves转换成一个由Range/Vector使用的函数,而不是扩展到它们上的函数。
正如请求的那样,我已经将这一问题上的大型补丁拆分成四个较小的工单。其他三份是:CLJ-1045, CLJ-1046, 和 CLJ-992。
CLJ-1045包含fold-by-halves的实现,因此必须先接受CLJ-1045,才能应用此补丁。该工单不依赖于其他两个工单,但在它们合并之前会存在轻微的合并冲突。
评论者:gshayban
范围现在可减少了。
我们应该也关闭这个。1.7没有涵盖的是可折叠性。