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 报告)
...