> 这两个都涉及到构建迭代函数,但它们在那些项目中都没有被调用过
亚历克斯,我想澄清一下,这是不正确的。实际上,在某种情况下,Meadow是通过生成的宏代码使用`iter`函数来实现一些更简单的语义(更简单的代码生成)。虽然我后来意识到可以不使用`iter`来实现这一点,但在当时我没有找到解决方案,而`iter`解决了我的问题。
你承认这些情况存在,这也是为什么一些Clojure内部代码还没被“锁起来”的原因。你承认Wilker提供的`iter`的JVM实现是“完全可用的”。然而,你认为它不应该成为公共API的一部分,也不是一个好主意,但你没有给出一个明确的原因来解释你的这种想法。
> 我认为`iterator`不是一个应该广泛使用或推广的函数
我同意。在核心库中,有许多函数并不被广泛使用也不被推广,但它们仍然存在,因为它们有其用途。换句话说,推广的可能性或使用范围不能成为排除`iter`的理由。
> 通常情况下,迭代器都很不像Clojure风格。
这是一种独断的、本质主义的立场。就像是,伙计,这是你的观点。 :^)
Clojure在核心库中包括了许多利用“有状态性和通常不适合并发”的东西的机会,正如你所指出的,故意让这些东西容易访问。所以在我这个位置看来,“Clojure风格”所包含的内容,似乎也包括这些“不像Clojure风格”的东西。
现在,让我问一下,一个函数在被视为“应该”之前必须满足什么随意标准?