> 这些都是关于构建迭代器函数的讨论,但项目中的这些函数从未被调用过。
亚历克斯,我想澄清这件事是错误的。实际上,在一些情况下,Meander确实通过生成的宏代码使用`iter`函数来实现一些更简单的语义(简化代码生成)。虽然现在我意识到可以不用`iter`来实现这一点,但在当时我没有那个解决方案, 而`iter`解决了我的问题。
你承认这些情况存在,这也是为什么一些Clojure内部功能“没有得到锁存”的原因。你承认威尔克提供的`iter`在JVM上的实现是“非常好的”。然而,你不认为它应该成为公共API的一部分或者是一个好主意,但你没有明确说明为什么有这种想法。
> 我认为`iterator`不是一个应该广泛使用或推广的函数
我同意。核心库中存在许多不广泛使用也未被推广但仍然有用的函数。换句话说,推广的潜力或使用范围不能是排除`iter`的原因。
> 一般而言,迭代器很不Clojure。
这是一种排他性的、本质主义的态度。就象,男人的观点。:^)
Clojure在核心库中提供了许多使用“状态性的且通常不兼容并发的”功能的机会,正如你所指出的,它会故意使这些功能可访问。所以,从我站的角度来看,无论是“Clojure的特性”包括哪些,似乎都包括那些“不那么Clojure的”功能。
现在,让我问问,一个函数在“应该被考虑”之前必须满足什么任意条件?