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

欢迎!请查阅 关于 页,了解有关此功能的一些更多信息。

+2
文档

partition-all 当前声明它返回的是 列表。尽管如此,当作为 transducer 使用时,它返回的是 向量

2 个答案

0
by

评论由:pbwolf 提供

列表和向量之间的区别不仅仅是装饰性的!

这并不像是文档中的错误。该函数的 transducer 版本未能满足一个明确声明的合同。

或者,这只是一个文档错误,对于 partition-all 有时候产生列表,有时候产生向量,这取决于您程序中微妙配置,您可能出于计算原因而更改它,而对返回结构的本质想得最少,因此无意中破坏了所有下游的 conj...那么这个文档错误实际上是文档多年来一直过度声明了一个内部实现细节,承诺了列表,而安全地消费 partition-all 结果的方法只能是使用序列函数。

by
是的,文档多年来过度声明了您应该期待的情况。由于 transducer 是新出现的,所以让它不同并不是破坏任何现有的代码。
0
参考:https://clojure.atlassian.net/browse/CLJ-2329 (由 aralo 报告)
...