我发现 Oleg 在 Iteratee 上的文档有点难以理解。特别是因为他在 Haskell-Cafe 的帖子中的一些函数不在 iteratee 库中(如enum_file
)。
是否有一个很好的关于 iteratee 的介绍,包括打开文件/套接字、读取和处理数据等基础知识。
最近在 Monad Reader 上发表了一篇关于 Iteratees 的好文章:
http://themonadreader.wordpress.com/2010/05/12/issue-16
这篇文章有大量的例子,以及随着它的发展而增加复杂性的替代实现。
我有一些关于单曲面解析的幻灯片,它们构建了基于 Iteratee 的 Parsec 流作为中间结果,您可能会发现它很有用。
据我所知,目前还没有很好的介绍。我通过重写 Oleg 的代码来学习它们。所以那肯定是一条路:实现一个基于左折叠的 IO 层。
对于enumerator包(包括一个 iteratee),有一个如何使用实现的示例,而不是展示如何重新实现该包。它显示了 unix find 命令的另一种实现,如Real World Haskell 书(第 9 节)中所述。
http://www.mew.org/~kazu/proj/enumerator/
您也可以将其作为使用其他实现的起点。