请在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

评论者:alex yakushev

这是驾车时提出的意见,我认为(shuffle nil)应该返回一个空集合,就像sort、map、filter、partition等。

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