2024 Clojure 状态调查!中分享您的想法。

欢迎!请参阅关于页面以了解更多此功能的工作信息。

0 投票
ClojureScript

clojure/core.rrb-vector 在 ClojureScript 中实现了 MapEntry 协议,看起来在传递给 (vec ...) 时会导致错误的结果(它首先检查输入是否为 MapEntry)。

(vec (range 10))
[0 1 2 3 4 5 6 7 8 9]

>(rrb/vec (range 10))
[0 1 2 3 4 5 6 7 8 9]

(vec (rrb/vec (range 10)))
[0 1] <------- !!!!!!!!!

(seq (rrb/vec (range 10)))
(0 1 2 3 4 5 6 7 8 9)

(map-entry? (rrb/vec (range 10)))
true <------- !!!!!!!!!

(map-entry? (vec (range 10)))
false

1 答案

+1 投票

我可以确认我也在 core.rrb-vector 库的 ClojureScript 版本中看到这种行为。我最近对这个库进行了一些错误修复,却没有注意到这个问题。原始作者为 IMapEntry 协议添加了实现,但我不知道为什么。我会进一步调查。感谢您的报告。

...