2024年Clojure调查问卷!中分享您的想法。

欢迎!请参阅关于页面以了解更多关于此功能的信息。

+3
Clojure

CLJS版本的shuffle接受数组,但CLJ版本不接受。
CLJS版本的shuffle接受nil,但CLJ版本不接受。

这种行为可以统一。

提案

  • 在CLJ中添加对数组的支持
  • 在CLJ中添加对nil的支持并返回nil或()。
  • CLJS版本在nil上的行为应与CLJ相同:不要返回一个空向量,因为nil不充当空向量。
  • CLJS版本支持字符串的洗牌,但这被视为未定义的行为。

附加的补丁CLJ-2470添加了对nil(也返回nil)和Java数组的支持。
补丁CLJ-2470-2添加了一个更好的错误信息。

补丁: CLJ-2470-2.patch
由以下人员预审: Alex Miller

5 条回答

0

评论者:borkdude

附加补丁。

0

评论者:borkdude

Alex

CLJS也支持

`(shuffle (eduction (map inc) [1 2 3]))`

它应该这样做,并且如果是这样,我们应该在CLJ中支持它吗?可能不是,因为它不是一个集合?

0

评论由:alexmiller 提出

我觉得这看起来很奇怪,所以我认为是不会的。

0
答者:

评论由:alexyakushev 提出

临时评论,我认为(shuffle nil)应该返回一个空集合,就像 sort, map, filter, partition... 等。

0
答者:
参考: https://clojure.atlassian.net/browse/CLJ-2470(由 borkdude 提出)
...