> 它们都是关于构建一个迭代函数,但在那些项目中它们从没有被调用
Alex,我想澄清这一点是错误的。Meander确实通过生成的宏代码使用`iter`函数来在某种情况下更容易地实现某些语义(更简单的代码生成)。尽管我后来意识到没有`iter`也可以实现这一点,但在当时我没有那个方案,而`iter`解决了我的问题。
您承认这些案例确实存在,这也是为什么一些Clojure内部函数没有被“锁起来”的原因。您承认Wilker提供的`iter`的JVM实现“非常完美”。然而,您认为它不应该成为公共API的一部分,但您没有给出明确的理由来说明这些想法。
> 我认为`iterator`不是一个应该广泛使用或推广的函数
我同意。在核心库中存在许多很少使用或推广的函数,但它们仍然因其实用性而存在。换句话说,推广能力或使用范围不能是排除`iter`的原因。
> 通用迭代器在总体上很不Clojure。
这是一个排他性的本质主义立场。就像,你的观点,哥们。:^)
Clojure包含了许多机会在核心库中使用“有状态且通常不友好的并发”事物,正如你所言,故意使这些事物可访问。因此,无论“Clojure”包含什么,从我坐的地方来看,这似乎包括那些“不Clojure”的事物。
现在,让我问一下,一个函数在“应该”被认为是之前必须满足的随意标准是什么?