我在cats documentation中阅读了有关类型类ApplyApplicative的信息。我想知道为什么该库提供了两个单独的类型类,而不是仅提供一个类型类Applicative,它会扩展Functor并添加ap吗?有人使用不是ApplyApplicative吗?

最佳答案

Applicative提供pure方法,这是一种“进入”的方法。否则,尽管您可以使用F[A](通过F[B])或A => B(通过map)将F[A => B]转换为ap,但是您没有能力在F中放入任何内容。因此,您仅限于让别人为您做。
Applicative的不同之处在于您可以从零开始放入东西。

由于这两种方法都是有用的(“您被授权将其放入F中”和“否,请放开手,然后根据给出的内容进行操作”),因此ApplicativeApply是单独的类型类。

关于scala - 为什么我们需要将Apply和Applicative类型类分开?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36848320/

10-10 20:17