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

欢迎!请参阅关于页面以了解更多有关本网站如何运行的信息。

0 意见
文档

range函数的文档确实说明了以下用法

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

现有文档

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

也可以步退而不是前进,例如,可以通过-1的步长从10向下计数
,(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时,返回从开始到无限的序列。

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),通过步长,其中开始默认为0,步长为1,结束为
无限。当步长等于0时,返回从开始到无限的序列。当开始等于结束时,返回空列表。
可能更准确的说法是

无限。当开始等于结束时,返回空列表。当步长

返回从起始值(包含)到结束值
(exclusive),通过步长,其中开始默认为0,步长为1,结束为
等于0并且开始和结束不同时,返回从开始到无限的序列。
当开始等于结束时,返回空列表。
当步长等于0且开始和结束不同时,返回从开始到无限的序列。

0 意见
参考: https://clojure.atlassian.net/browse/CLJ-704 (由alexi_here_报告)
...