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