请在 2024年 Clojure 状况调查 中分享您的观点!

欢迎!有关如何操作的更多信息,请参阅 关于 页面。

0
Clojure

Rich 今天在 IRC 中提到,他欢迎 clojure.core/range 的 reducer 实现方法。既然我已经想通了如何进行迭代,我估计在今晚之前会把 range也给解决了。提前开启这个问题是为了通知那些可能感兴趣的人。

24 个答案

0

评论者:jasonjckn

是否应该让 r/range 返回一个可顺序、可计数的对象?

如果是这样,我会在 r/repeat 上做同样的操作。

0

评论者:amalloy

我已经概述了问题和选项。我对开发维基不太熟悉,无法找到正确的位置放置这些。'release.next' 似乎仍然关于 1.4 问题,我不知道是否“合适”为这个问题创建一个全新的类别。它在找到一个更好的归宿之前是可以访问的(链接:https://gist.github.com/1586b2460329dde1c374 文本:作为一个 gist)。

0

评论者:amalloy

这里是一个单独的补丁,总结了 Rich 提出要“恢复”的状态:分离了 r/range 和 r/iterate 函数。自从完成 Rich 要求的总结之后,我就没有听到任何反馈,所以目前没有进一步进展;如果需要除这个补丁之外的其他东西,请告诉我。

0

评论由: richhickey 提出

我不太希望看到对新型使用扩展符 like 这样。也许这段代码太 DRY 了?此外,它在一个补丁中做了很多事情,这使得它很难解析和接受。这增加了 Range、切换 vector folds 的实现等。能否将其拆分成单独的票据,每个票据都构建在之前的基础上,例如,一个票据可以是:捕获 vector fold 实现以供类似事物重用。

0

评论者:amalloy

好的,我应该能在周末将其拆分。我还会考虑将 fold-by-halves 转换成一个函数,这个函数由 Range/Vector 使用,而不是一个扩展到它们上的函数。

0

评论者:amalloy

如请求,我已经将此问题的较大补丁拆分为四个较小的票据。其他三个是:CLJ-1045、CLJ-1046 和 CLJ-992。

CLJ-1045 包含 fold-by-halves 的实现,因此只有在 CLJ-1045 被接受之后才能应用此补丁。此票据不依赖于其他两个,但在它们之前合并时可能会有轻微的合并冲突。

0

评论由: gshayban 提出

现在是可缩减的 range。

0

评论由: gshayban 提出

我们应该关闭这个任务。1.7 中没有涵盖的唯一内容是 foldable 属性。

0
参考:https://clojure.atlassian.net/browse/CLJ-993 (由 amalloy 报告)
欢迎来到 Clojure问答社区,在这里你可以向 Clojure 社区成员提问并获得答案。
...