我喜欢iteratees作为IO的范例,但我对这些名称有些担忧。
我无法与这些名字建立关系。有人能解释他们的起源吗?如果有的话,定义data Stream a = Chunks [a] | EOF
会更糟。这与我之前关于流的概念没有关系,因为它只是整个流的一小部分。
好像Iteratee
消耗了东西,Enumerator
生成了它们,而Enumeratee
s同时使用了Sink
,Source
和Transformer
或Consumer
,Producer
和Transformer
可能是更好的选择?除了约定之外,为什么这些名称不能很好地适应这些概念?
在这个主题的所有77个变种中,我对John Millikin's take on this old Haskell-Cafe thread about a variation which statically eliminates the "divergent iteratee" problem感兴趣(为了响应EOF而返回Continue的迭代的问题),但我的名字问题适用于漂亮很多我见过的版本。