请分享您的想法,参加 2024 Clojure 状态调查!

欢迎!请查阅关于页面获取更多关于工作原理的信息。

0
ClojureScript

ChunkedCons 中存在一个错误。在 Clojure 中,ChunkedCons (正确地)总是在 chunked-next 中调用 {{seq}}。但在 CLJS 中没有这样做。由于 ChunkedCons 必须是惰性的,它几乎总是将其“更多”部分作为一个(空)惰性序列来获取。

错误

`
(-> (map inc (vec (range 64)))

seq
chunk-next
seq
chunk-next)

`

返回空序列而不是 nil。由于还没有什么调用 ChunkedCons 的 chunk-next,因此目前为止尚未出现这种情况。

7 个答案

0

评论者:aralo

发现另一个暴露出来的错误:当前实现会调用 {{-seq}} 在 {{more}} 上,而 {{more}} 可能是 nil,这可能会导致崩溃。因此,补丁也对 {{-next}} 做了微小更改,只是调用 {{seq}} 在 {{more}} 上。相当直接。

0

评论者:dnolen

此补丁需要测试。

0

评论者:aralo

已添加测试。

0

评论者:mfikes

补丁无法应用

0

评论者:aralo

补丁已更新

0

评论者:mfikes

补丁不再应用。

0
...