2024 Clojure 状态调查!分享您的想法。

欢迎!有关此工作的更多信息,请参阅关于页面。

0
文档

range 函数的文档确实显示了以下用法

(range 10 0 -1) -> (10, 9, 8, 7, 6, 5, 4, 3, 2, 1)

当前文档

返回一个从起始值(包含)到结束值(不包含),按步长计数的延迟序列。其中起始值默认为 0,步长默认为 1,结束值默认为无穷大。当步长等于 0 时,返回一个以起始值开始的无限序列。当起始值等于结束值时,返回空序列。

也可以反向步进,例如计数反向
从 10 开始,步长为 -1:(range 10 0 -1)。

建议

添加最后一句话:“步长可以是负数。”

补丁:clj-704.patch

8 个答案

0

由:raek 评论

当前文档确实简短地提到了 '步长' 参数

"(link: ...) 到结束(不包含),通过 步长,其中起始值(link: ...)"

但鉴于这可能是容易忽略的,我觉得补充文档是一个好主意。

我的建议

从起始值(包含)到结束值(不包含)返回一个延迟序列的数字
,步长,其中起始值默认为 0,步长默认为 1,结束值默认为无穷大。
步长可以是负数以进行反向计数。

0

由:pbalduino 评论

关于这有什么消息吗?

我可以分派给我吗?

0

由:jafingerhut 评论

不,还没有关于这个问题的消息。它处于"开放"状态,这意味着目前还没有关于Clojure筛选器或Rich Hickey是否感兴趣此类变更的判断。http://dev.clojure.org/display/community/JIRA workflow

话虽如此,创建补丁似乎不需要花太多时间。详细的说明在这里: http://dev.clojure.org/display/community/Developing Patches

0

评论由:alexmiller发表

去做吧!

0

由:pbalduino 评论

我无法重现这个问题:"当步长等于0时,返回从开始到无穷的序列."

https://github.com/clojure/clojure/blob/master/src/clj/clojure/core.clj#L2726-L2729

这是否正确?

0

由:jafingerhut 评论

最后一次修改range是在票号CLJ-1018。请参阅那里附上的补丁,我认为这是在Clojure 1.5之后、Clojure 1.6之前的提交。

也许这个变动没有在文档字符串中声称的功能。我还没有仔细研究它。

0

由:jafingerhut 评论

Clojure 1.6中,如果修改文档字符串的最后两行可能会更准确。range的当前文档字符串为

从起始值(包含)到结束值(不包含)返回一个延迟序列的数字
(exclusive), by step, where start defaults to 0, step to 1, and end to infinity.
When step is equal to 0, returns an infinite sequence of start.
When start is equal to end, returns empty list.

可能更准确的说法是

从起始值(包含)到结束值(不包含)返回一个延迟序列的数字
(exclusive), by step, where start defaults to 0, step to 1, and end to infinity.
infinity. When start is equal to end, returns empty list. When step is equal to 0
and start and end differ, returns an infinite sequence of start.

0
参考: https://clojure.atlassian.net/browse/CLJ-704(由alex+import报告)
...