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 评论

当前文档确实简要提到了 '步进' 参数

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

但鉴于这个细节可能容易被忽略,我觉得还是在文档中添加一点是一个好主意。

我的建议

返回从起始值(包含)到结束值的惰性序列
(不包含),按步进,其中起始值默认为 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时,返回一个从start开始的无限序列。”

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

这是正确的吗?

0

由:jafingerhut 评论

range函数最后一次修改是因为ticket CLJ-1018。请参阅那里的附加补丁,我认为它是Clojure 1.5之后但在Clojure 1.6之前应用的补丁。

也许这个更改的说明中声称的功能并不正确。我还没有仔细查看它。

0

由:jafingerhut 评论

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

返回从起始值(包含)到结束值的惰性序列
(不包括),通过步长,其中start默认为0,步长为1,end为
无限。当步长等于0时,返回一个从start开始的无限序列。当start等于end时,返回空列表。
可能更准确的说法是

无限。当start等于end时,返回空列表。当步长

返回从起始值(包含)到结束值的惰性序列
(不包括),通过步长,其中start默认为0,步长为1,end为
等于0且start和end不同时,返回一个从start开始的无限序列。
当step等于0并且start和end不同时,返回一个从start开始的无限序列。
返回一个从start开始的无限序列。

0
参考信息:https://clojure.atlassian.net/browse/CLJ-704(由alexisport报道)
...