我在cats documentation中读到有关类型Apply
和Applicative
的内容。我想知道为什么库提供两个单独的类型而不是只有一个类型Applicative
,它会扩展Functor
并添加ap
?是否有人使用的Apply
不是Applicative
?
答案 0 :(得分:12)
Applicative
提供pure
方法,这是一种进入"进入"的方法。否则,虽然您可以将F[A]
转换为F[B]
,但要A => B
(通过map
)或F[A => B]
(通过{{ 1}}),你没有能力在ap
内放置任何东西。因此,您仅限于让其他人为您服务。
与F
的区别在于可以将内容放入,从无到有。
因为其中任何一个都有用("你有权将事情放入Applicative
"并且不会,请保持双手,并按照你所做的事情进行操作。重新给出"),F
和Applicative
是单独的类型类。