> 它们都是关于构建一个迭代器函数,但是这些项目根本不会调用这些函数。
亚历克斯,我想澄清,这是错误的。实际上,Meander确实通过生成的宏代码使用`iter`函数,在某种情况下以更简单的方式(更简单的代码生成)实现了一些语义。尽管后来我意识到可以不用`iter`来实现这一点,但在当时我没有这个解决方案,而`iter`解决了我的问题。
你承认这些情况确实存在,这也是一些Clojure内建功能尚未“隐藏”的原因。你承认威尔克给出的`iter`的JVM实现“非常理想”。然而,你认为它不应该是公共API的一部分,但这并不是你明确表示这个想法的原因。
我认为“迭代器”不是一个应该广泛使用或推广的函数
我同意。核心库中存在许多不常被使用或推广的函数,但它们依然是出于实用性的考虑存在的。换句话说,推广的潜力和使用范围不能成为排除`iter`的理由。
总的来说,“迭代器”非常不符合Clojure的编程风格。
这是一种排他性的、本质主义的立场。它就像,你的观点,兄弟。:^)
Clojure在核心库中提供了许多机会来使用“有状态和通常不友好的并发”的功能,正如你所指出的,它是故意让它成为可访问的。所以,无论“Clojure风格”包括什么,从我坐的这个位置来看,它似乎包括那些不符合Clojure风格的东西。
现在,让我问一下,一个函数在成为“应该”考虑的对象之前必须满足哪些任意标准?