欢迎!请查看 关于页面 以获取更多关于如何使用本站的信息。
Rich 今天在 IRC 中提到,他很欢迎 clojure.core/range 的减少器实现。鉴于我已经弄清楚如何进行迭代,我想在夜间结束前将 range 也完成。现在只是提前打开问题,声明我对任何人有兴趣做这个事情的计划。
该评论由: jasonjckn 制作
应该 r/range 返回一个可序列化和可计数的对象吗?
如果是这样,我也将为 r/repeat 做同样的事情。
该评论由: amalloy 制作
我已经草拟了问题的描述和选项。我不是很熟悉开发维基,无法确定将这个问题放在哪个位置。“release.next”看起来仍然有关 1.4 的问题,我不知道是否应该为其创建一个全新的类别。它可以在找到更好的地方之前使用(链接: https://gist.github.com/1586b2460329dde1c374 文本:作为一个摘录)。
这是一个补丁,总结了 Rich 建议退回到的状态:将 r/range 和 r/iterate 函数分开。自从撰写 Rich 指定的文稿以来,我没有收到任何反馈,所以目前没有进一步进展;如果需要除了这个补丁之外的东西,请告诉我。
评论者:richhickey
我不太希望在新类型中看到这样的 extend 使用。也许这段代码过于重复?它在一个补丁文件中做了很多事情,这使其难以解析和接受。这增加了 Range,切换了向量折叠的实现等。能否将其拆分为独立的条目,每个条目构建在之前的基础上,例如,一个条目可以是:捕获向量折叠的实现以便被类似的项目复用。
好的,我应该在周末将其拆分。我还会考虑将折半(fold-by-halves)转换为一个由 Range/Vector 调用的函数,而不是一个扩展到它们上面的函数。
应要求,我已经将这个问题上的大型补丁拆分为四个较小的条目。其他三个是:CLJ-1045、CLJ-1046和CLJ-992。
CLJ-1045 包含了折半实施的内容,因此必须先接受 CLJ-1045 才能应用这个补丁。这个条目不依赖于其他两个,但在它们之前合并时将会有细微的合并冲突。
评论者:gshayban
range 现在是可减少的。
应该关闭这个了。在1.7中没有提到的是可折叠方面。