> 它们都旨在构建一个迭代函数,但这两个项目都从未调用过它们
亚历克斯,我想澄清一下,这是不正确的。在梅安德(Meander)中,事实上确实通过生成的宏代码使用`iter`函数,在某些情况下以更简单的方式(更简单的代码生成)实现了某些语义。虽然我已经发现了在无需`iter`的情况下实现这一功能的机会,但在当时我没有这个解决方案,而`iter`解决了我的问题。
你承认这些情况存在,这是为什么一些Clojure的内务操作还没有“藏起来”的原因。你承认威尔克(Wilker)提供的`iter`的JVM实现“非常好”。但你并不认为它应该成为公共API的一部分或者是一个好主意,但你没有给出一个明确的原因说明你为什么这样想。
我认为`iterator`不是一个应该广泛使用或推广的函数
我同意。在clojure核心库中存在许多不常使用也未被推广但却是必需的函数。换句话说,推广的可行性和使用的广泛程度并不能成为排除`iter`的理由。
一般来说,迭代器非常不符合Clojure的风格。
这是一个排他性、本质主义的态度。就像,你的观点,兄弟。:^)
Clojure库包括了众多使用“有状态且通常不适用于并发”功能的机会,并且正如你所指出的,故意使这些功能可供使用。所以无论“clojurey”包括什么,从我的角度看起来,“非clojurey”的东西也在其中。
现在,让我问一下,一个函数在“应该”被考虑之前必须满足什么样的任意标准?