2017-03-09 98 views
2

我已经在Java中使用ReactiveX扩展工作了几年,但现在我转向scala,并且我看到很多人使用扩展ScalaZ在Scala中执行更多功能编程。Scalaz vs ReactiveX

是否有任何差异使用ScalaZ扩展,或者只是适应reactiveX Scala,我所知道的与Scala很好?

和阅读之后这个博客https://medium.com/@luijar/the-observable-disguised-as-an-io-monad-c89042aa8f31我虽然观察到的工作作为一个IO单子在Scalaz

问候。

+1

你可能想看看'scalaz-stream',现在是[FS2(斯卡拉功能流)](https://github.com/functional-streams-for-scala/fs2)。我自己不使用它,所以我不能说它与ReactiveX的关系。 –

+0

谢谢我会看看 – paul

回答

4

Scalaz和ReactiveX彼此完全正交。

斯卡拉斯专注于将类别理论从哈斯克尔带到斯卡拉。它带来了Monads和Monoid等其他类型的大量类型类。

另一方面,ReactiveX更专注于将反应式编程概念引入该语言。它带有Observable和Observers。

甚至可以将RxScala与Scalaz一起使用!有一个名为RxScalaz的回购协议,为RxScala提供了一些Scalaz的类型实例。请在此处查看:https://github.com/everpeace/rxscalaz

如果您对使用RxScala的“only”感到满意,那么没有“真正的”需要将Scalaz纳入您的项目。

+0

看完这个博客后,我很困惑https://medium.com/@luijar/the-observable-disguised-as-an-io-monad-c89042aa8f31 – paul

+0

我明白你的困惑,但我认为作者们简化了IO Monad和Observable之间的关系。如果您对这些差异有任何具体的问题,我会很乐意回答:) –

+0

请随意阐述一下,或者指出我对它的正确方向。谢谢 – paul