> 它们都是关于构建一个迭代器函数,但这些函数在那些项目中从未被调用过
亚历克斯,我想澄清一下,这是不正确的。Meander确实通过生成的宏代码使用`iter`函数,在某些情况下可以更轻松地实现一些语义(更简单的代码生成)。尽管后来我意识到可以不使用`iter`来实现这一点,但在当时我并没有这个解决方案,而`iter`解决了我的问题。
您承认这些情况存在,这就是为什么一些Clojure内部函数没有被“束之高阁”的原因。您承认威尔克提供的`iter`的JVM实现“完美无缺”。然而,您不认为它应该成为公共API的一部分,但您没有给出明确的理由说明您的这种想法。
> 我认为`iterator`不是一个应该广泛使用或推广的函数
我同意。在核心库中存在许多函数,它们不常用或不被推广,但它们确实存在,因为它们具有实用性。换句话说,推广程度或应用范围的广度不能成为排除`iter`的原因。
> 通常情况下,迭代器在Clojure中是很不典型的。
这是一个排他性的、本质主义的立场。就像是,这仅仅是你的个人看法。:^)
Clojure在核心库中提供了许多机会来使用“有状态且通常不友好于并发”的东西,并且正如你所指出的,故意使这些功能可访问。所以无论“clojurey”包括什么,从我这边看,它似乎是包括那些“不clojure”的东西。
现在,让我问你,一个函数在“应该”被考虑之前必须满足什么样的任意标准?