Kar*_*arl 4 functional-programming scala scala-cats
我想做一些需要效果的编程(谁不需要:-)。特别是像 scalaz Task 之类的东西来运行一些异步数据检索并产生类似 Future 的效果,该效果将在完成时处理结果。
我注意到 typelevel Cats 现在有Effect Monad但也有 typelevel eff Monad项目。两者都是为了在功能上处理效果。所以现在我可以选择在哪里投资我的时间,我很困惑。
或者我可以同时使用两者,例如在 eff FutureEffect 或 TaskEffect 中包装 cat.Effect。这甚至是个好主意吗?
谢谢
尽管它们的名称有些相似,但这两个项目的目的完全不同。
cat-effect的目的是IO为 Scala(+ 一些其他相关的类型类)提供一种原则/标准类型,一种对其进行抽象的方法(例如同步、异步等)并提高第三方库之间的互操作性和可组合性。
Eff的目的是提供一种替代 monad 转换器 (mtl) 编程风格的方法。它不一定处理 IO/Task 等,但提供了一种更清晰的方法来堆叠效果(例如,如果您需要组合 Reader + State + Writer 效果,手动执行它会变得很痛苦)。
从你的描述来看:
特别是像 scalaz Task 之类的东西来运行一些异步数据检索并产生类似 Future 的效果,该效果将在完成时处理结果。
看起来你需要的东西会更好地由cats-effect.
| 归档时间: |
|
| 查看次数: |
342 次 |
| 最近记录: |