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时,返回一个以起始值为无限序列”。

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的文档字符串目前是:

返回一个从起始值(包含)到结束值
(exclusive),通过步长确定,其中起始值为0,步长为1,结束值为∞。
当步长等于0时,返回一个以起始值为无限序列。
当起始值等于结束值时,返回空列表。

可能更准确的说法是

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

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