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

Mic*_*ael 8 scala applicative scala-cats

我在猫的文档中读到有关类型ApplyApplicative.我想知道为什么库提供两个单独的类型而不是只有一个类型类Applicative,它会扩展Functor和添加ap?有人使用Apply那不是Applicative吗?

Rex*_*err 12

Applicative提供pure方法,这是一种"进入"的方式.否则,尽管你可以转换F[A]F[B],无论是与A => B(通过map)或F[A => B](通过ap),你不必把任何东西里面的容量F.所以你只能让其他人为你做.

不同之Applicative处在于你可以把东西放进去,从零开始.

因为其中任何一个都是有用的("你有权将事情变成一个F"和"不,保持你的手,并按照你给的东西进行操作"),Applicative并且Apply是单独的类型.