申请签名#apply

时间:2013-12-13 02:50:52

标签: scala

查看Functional Programming in Scala中的Applicative,我看到了apply函数:

trait Applicative[F[_]] extends Functor[F] {
    def apply[A,B](fab: F[A => B])(fa: F[A]): F[B]

签名中F[A => B]的含义是什么?

1 个答案:

答案 0 :(得分:2)

F[A => B]是函数A => B的函子。它的含义取决于F本身的含义,但我们可以提出Option[A => B]如何成为可能包含或不包含要应用的函数的选项的示例,或{{1}将包含将List[A => B]映射到A的函数。

正如作者在本练习的solution中所示,我们通过使用函数B得到F[A => B],然后将其括起来使其成为f: (A, B) => C)到{A的函数{1}},并将其映射到方法B => C中的F[A]