2024 Clojure 问卷调查中分享您的想法!

欢迎!请查看关于页面以了解更多此操作的详细信息。

0
Clojure

Rich今天在IRC上提到,他欢迎实现 clojure.core/range 的减法器。既然我已经掌握了如何迭代,我计划在今晚之前完成 range 的实现。现在提前打开问题,向任何人宣布我的意图,如果有人对实现它感兴趣的话。

24个回答

0

评论者:jasonjckn

r/range应该返回一个Seqable和Counted吗?

如果是这样,我也会为r/repeat做同样的处理。

0

评论者:amalloy

我已经概述了问题和选项的描述。我对开发Wiki不太熟悉,无法确定应该在哪里放置这些。好像"release.next"还关于1.4的问题,我不知道是否应该为这个问题创建一个全新的类别。在找到一个更好的家之前,它可用(链接:https://gist.github.com/1586b2460329dde1c374 文本:作为gist)。

0

评论者:amalloy

这里有一个单打补丁,总结了 Rich 建议恢复到“滚动回”的状态:分开 r/range 和 r/iterate 函数。自从完成 Rich 要求的写作之后,我没有听到任何反馈,因此目前在没有进一步进展;如果需要除了这个补丁以外的任何东西,请告诉我。

0

评论者:richhickey

我更愿意不看到像这样对新类型使用扩展。也许这段代码过于DRY?此外,它在一次补丁中做了很多事情,这使得解析和接受变得很困难。这增加了范围,切换向量折叠的实现等。它能否分成单独的条目,每个条目都构建在上一个条目的基础上,例如,一个条目可能是:捕获向量折叠的实现以便由类似的东西重用。

0

评论者:amalloy

好的,我可以在周末将其拆分。我还会看看是否能把按半折叠成一个.Range/Vector使用的函数,而不是扩展到它们上的函数。

0

评论者:amalloy

依照要求,我已经把这个大补丁拆成了四个较小的条目。其他三个是:CLJ-1045、CLJ-1046和CLJ-992。

CLJ-1045包含了按半折叠的实现,因此这个补丁在被接受之前不能应用。这个条目不依赖于其他两个,但如果在这两个之前合并,则会有轻微的合并冲突。

0

评论者:gshayban

range现在可用作折叠。

0

评论者:gshayban

我们应该关闭它。1.7版本中唯一没有覆盖的是可折叠方面。

0
参考:https://clojure.atlassian.net/browse/CLJ-993(由amalloy报告)
欢迎使用Clojure Q&A,您可以在这里提问并从Clojure社区的成员那里获得答案。
...