应用式函子
维基百科,自由的 encyclopedia
在函数式编程中, 应用式函子,或简称应用式(applicative),是在函子和单子之间的中间结构。应用式函子允许函子式计算成为序列(不同于平常函子),但是不允许使用前面计算的结果于后续计算的定义之中(不同于单子)。应用式函子是范畴论中具有张量强度(英语:Strong monad)的不严格幺半群函子(英语:Monoidal functor)的编程等价者。
应用式函子是2008年Conor McBride和Ross Paterson在他们的论文《Applicative programming with effects》中介入的[1]。应用式函子在Haskell中最初作为库特征出现,现在已经传播到了其他语言,包括Idris、Agda、OCaml、Scala和F#。为了方便使用应用式函子编程,Glasgow Haskell和Idris二者现在提供了专门设计的语言特征。在Haskell中,应用式函子实现在Applicative
类型类中。