Arrow-Kt Fx 与 Kotlin 协程

Arc*_*nes 3 kotlin arrow-kt kotlin-coroutines

我正在努力学习,Arrow-Kt因为我对Functional Programming in Kotlin.

有人可以解释为什么需要创建另一个功能与 几乎相似的结构Kotlin Coroutines吗?还是我对此的理解有误?

这两者是如何结合在一起的?

nom*_*Rev 9

Arrow fx 在处理 IO 时使用协程,而不是替换它们。类似于 Room 具有允许使用 Flow 的扩展。

这是错误的,Arrow Fx 为 Kotlin 的挂起系统构建了一个纯函数式运行时库。就像 KotlinX Coroutines 为 Kotlin 的库构建运行时库一样。

因此,这两个库都为 Kotlin 的挂起系统提供了一个实现,并且可以根据您的需要或用例互换或独立使用。

Arrow Fx 为 Kotlin 的挂起系统提供了一个纯函数式惰性运行时,带有副作用跟踪和 monad 理解(如 Pablisco 所示)。

它包含一个IO类型,这相当于suspend () -> A,有许多强大的并发原语一样SemaphoreQueueRefPromise,等他们都保证资源的安全性,同时提供强大的并发和并行的组合程序,并自动取消支持。(在下一个版本中,我们还将支持 suspend () -> 任何一种)

与 KotlinX 协程相反,它提供了 Kotlin 挂起系统的急切实现,具有协作取消支持和冷流实现。