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

欢迎!请参阅 关于 页面以了解更多此网站的操作信息。

+3
Clojure

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

这种行为可以统一。

提案

  • 在 CLJ 中添加对数组的支持
  • 在 CLJ 中添加对 nil 的支持并返回 nil 或 ()
  • 在 CLJS 中对 nil 的行为应与 CLJ 相同:不要返回空向量,因为 nil 不会作为空向量处理。
  • CLJS 版本支持字符串的 shuffle,但这可以认为是未定义的行为。

附带的补丁 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 提出)
...