为什么我们需要分开Apply和Applicative类型类?

时间:2016-04-25 18:26:34

标签: scala applicative scala-cats

我在cats documentation中读到有关类型ApplyApplicative的内容。我想知道为什么库提供两个单独的类型而不是只有一个类型Applicative,它会扩展Functor并添加ap?是否有人使用的Apply不是Applicative

1 个答案:

答案 0 :(得分:12)

Applicative提供pure方法,这是一种进入"进入"的方法。否则,虽然您可以F[A]转换为F[B],但要A => B(通过map)或F[A => B](通过{{ 1}}),你没有能力在ap内放置任何东西。因此,您仅限于让其他人为您服务。

F的区别在于可以将内容放入,从无到有。

因为其中任何一个都有用("你有权将事情放入Applicative"并且不会,请保持双手,并按照你所做的事情进行操作。重新给出"),FApplicative是单独的类型类。