我喜欢 iteratees 作为 IO 的范例,但我对名称有些担心。
我无法与这些名字建立关系。有人可以解释他们的起源吗?定义data Stream a = Chunks [a] | EOF
更糟,如果有的话。这不符合我之前的流概念,因为它只是整个流的一小部分。
似乎如果Iteratee
s 消耗东西,Enumerator
s 生产它们,并且Enumeratee
s 都使用 , 和 or , 之类的名称Sink
,Source
并且Transformer
可能Consumer
是Producer
更好的Transformer
选择?除了约定之外,还有其他一些原因为什么这些名称不能很好地符合这些概念吗?
在这个主题的所有 17 个变体中,我对John Millikin 对 Haskell-Cafe 旧线程的看法很感兴趣,该线程关于静态消除“发散迭代”问题的变体(返回 Continue 的迭代问题对 EOF 的回应),但我对名称的问题几乎适用于我见过的所有版本。