我正在使用 John Millikin 的 enumerator 包,并试图创建大致相当于 的东西Data.Enumerator.Binary.enumHandle
,除了它连接套接字本身,然后尝试枚举生成的句柄。困难来自连接不可靠的事实,如果出现问题,我希望它重新连接并恢复枚举。
我通常希望 Enumerator 是它自己有意义的 Monad 实例,但由于它是函数的类型别名,它的单子行为只是其输入步骤的读取器,在这里似乎没有多大用处。我试图将一些东西放在一起,只是不断循环枚举器,使用catchError
,但它没有达到我的预期,我无法弄清楚它在做什么,所以我想知道是否有人可以提出一个很好的惯用方法. 我对一个解决方案的框架很好,因为显然有很多细节我已经省略了。
有任何想法吗?