> 两者都是关于构建迭代函数,而这些函数在那些项目中都没有被调用过。
亚历克斯,我想明确指出这是不正确的。其实,Meander确实使用通过宏代码生成的`iter`函数,在某些情况下更容易实现一些语义(代码生成更简洁)。虽然后来我发现了一种不需要`iter`就能实现的方法,但当时没有那样的解决方案,而`iter`解决了我的问题。
您承认这些情况存在,这也是为什么一些Clojure内部功能尚未“被锁定”。您承认威尔克提供的`iter` JVM实现“非常完美”。然而,您认为它不应该成为公共API的一部分,也不是一个好主意,但您没有给出明确的原因来解释您的这些观点。
> 我认为`iterator`不是应该被广泛使用或推广的函数
我同意。核心库中存在许多不完全被广泛使用或推广的函数,但它们仍然存在,有其用途。换句话说,推广的可行性和使用场景不应该是排除`iter`的理由。
> 总之,迭代器很不符合Clojure风格。
这是一个排他性的、绝对的主张。你的看法,伙计。:^)
Clojure在核心库中提供了许多使用“具有状态且通常不支持并发的”功能的机会,正如您所指出的,这些功能被故意使其可访问。所以,无论“Clojure风格”包括什么,从我的角度看,似乎也包括那些“不符合Clojure风格”的东西。
现在,让我问一下,一个函数必须在满足什么任意标准之前才能被认为“应该”加入?