【发布时间】:2018-01-06 05:06:19
【问题描述】:
我在cats documentation 中读到关于类型类Apply 和Applicative 的信息。我想知道为什么该库提供两个单独的类型类而不是一个类型类Applicative,它将扩展Functor 并添加ap?有人使用不是Applicative 的Apply 吗?
【问题讨论】:
标签: scala applicative scala-cats
我在cats documentation 中读到关于类型类Apply 和Applicative 的信息。我想知道为什么该库提供两个单独的类型类而不是一个类型类Applicative,它将扩展Functor 并添加ap?有人使用不是Applicative 的Apply 吗?
【问题讨论】:
标签: scala applicative scala-cats
Applicative 提供了pure 方法,这是一种“进入”的方式。否则,尽管您可以将F[A] 转换为F[B],无论是使用A => B(通过map)还是F[A => B](通过ap),您都没有能力将任何内容放入F。所以你只能让别人为你做这件事。
与Applicative 的不同之处在于你可以把东西放进去,从无到有。
由于两者都可能有用(“您有权将东西放入F”和“不,请不要动手,并根据您提供的内容进行操作”),Applicative 和 Apply 是单独的类型类。
【讨论】:
Apply 而不是Applicative 的示例(如“放开你的手,按照你给的东西操作”)?
Apply 类型类,但不是 Applicative 类型类。