为什么我们需要scalaz.stream而不是iteratee?

Xia*_*ong 11 scala scalaz iterate scalaz-stream

最近,我一直在玩scalaz.iteratee和Play的iteratee.我认为iteratee是一个很好的想法,提供模块化而不是旧的命令循环 - 目的是使用一个函数作为每个新行的处理程序,而不是从文件中获取字符串[].

但是,当我查看scalaz.stream的功能概述时,它提到它的设计是取代旧的iteratee实现,但它没有提到为什么要替换它.

有人可以向我解释我们是否可以使用Stream,我们可以获得哪些功能和优点以及使用iteratee有什么缺点?

Pav*_*cek 5

与scalaz-stream相比,Iteratee更难处理.Scalaz-stream在代码重用和组合方面也优于iteratees.

事实上,整个"服务器"现在可以在scalaz-stream中实现,而不仅仅是像Iteratee模式那样的小程序或代码片段.

Scalaz-stream为您提供卓越的资源安全性,终止原因传播,微调并发控制,大量组合器,并且易于扩展.

我们现在的项目是200K + scalaz流代码,并且是复杂的多用户多宿主集群服务器,所有这些都在scalaz流中实现.

如果你愿意分享你想要实现的目标,我可以更加"精确"地获益,并给你一些快速的代码示例,希望证明上述声明:-)