Clojure 2024调查问卷中分享您的想法!

欢迎!请查看关于页面以了解更多关于此操作的详细信息。

+2
文档

partition-all当前声明它返回的是列表集合。然而,当作为transducer使用时,它返回的是向量。

2 个回答

0

评论者:pbwolf

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

这看起来不是一个文档错误。该函数的transducer风格的实现没有满足明确的契约。

另一方面,假设这仅仅是一个文档错误,并且partition-all有时返回列表有时返回向量是可以接受的,这取决于您程序的微妙配置,您可能会出于计算原因更改它,而返回结构的性质与您的考虑相去甚远,因此意外地破坏了所有下游的conj操作...那么文档错误基本上就是这些年来文档过于强调内部实现细节,承诺了列表,而安全地消费partition-all结果的方法仅使用序列函数。

是的,文档说明多年来一直夸大了您应该期望的内容。transducer是新的,使它不同不会破坏现有代码。
0
参考: https://clojure.atlassian.net/browse/CLJ-2329(由 aralo 报告)
...