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

评论者:alex yakushev

这是临时评论,我觉得(shuffle nil)应该返回一个空的集合,就像sort、map、filter、partition等一样。

0
参考:[https://clojure.atlassian.net/browse/CLJ-2470](https://clojure.atlassian.net/browse/CLJ-2470)(由borkdude报告)
...