> 它们都关于构建迭代器函数,但这些函数在这些项目中都没有被调用过
Alex,我想澄清这一点是错误的。Meander确实通过生成的宏代码使用`iter`函数来在某种情况下更容易实现一些语义(更简洁的代码生成)。虽然后来我意识到可以在不使用`iter`的情况下实现这一点,但在当时我没有那个解决方案,`iter`解决了我的问题。
您承认这些情况存在,这也是为什么Clojure的一些内部功能尚未“被锁定”的原因。您承认Wilker提供的`iter`的JVM实现“完全可行”。然而,您认为它不应该成为公共API的一部分,也不是一个好主意,但您没有给出明确的理由来解释您的想法。
> 我认为`iterator`不是一个应该被广泛使用或推广的函数
我同意。核心中存在许多不是广泛使用或推广的函数,但它们仍然存在,因为它们有其实用性。换句话说,推广的可能性或用例的广泛性不能是排除`iter`的理由。
> 通用迭代器非常不符合Clojure的风格。
这是一个排他的、本质主义的态度。就像,你的看法,兄弟。:^)
Clojure在核心库中提供了许多使用“状态性和一般不便于并发”的东西的机会,并且正如你所指出的,正是为了故意使这些事物可访问。所以,不管“Clojure style”包括什么,从我的角度看,这似乎也包括那些“不符合Clojure风格”的东西。
现在,让我问一下,一个函数在“应考虑”之前必须满足哪些任意标准?