0
0

functor applicative 和 monad

鸟窝 发表于 2017年10月05日 22:30 | Hits: 842
Tag: 算法

Monad 函数式编程中的一个概念, 在 Haskell 和 Scala 语言中用的比较多。

这个概念来源于数学中的范畴学,过于学术化,我看国内的文章介绍的很多,但是准确、清晰而简要的介绍的文章却没有看到。

我也不准备介绍,因为我对它的理解也不够深,这里引用Functors, Applicatives, And Monads In Pictures一文中的图片和总结,来加深一下自己的理解。

  • functors : you apply a function to a wrapped value using fmap or <$>
  • applicatives : you apply a wrapped function to a wrapped value using <*> or liftA
  • monads : you apply a function that returns a wrapped value, to a wrapped value using >>= or liftM

Functor 的作用就是应用一个函数到一个上下文中的值

Applicative 的作用则是应用一个上下文中的函数到一个上下文中的值

Monad 应用的是一个返回上下文的值的函数,将这个函数应用在一个上下文中的值上

这篇文章已经被翻译成中文:Functor, Applicative, 以及 Monad 的图片阐释
kotlin中文版:Kotlin 版图解 Functor、Applicative 与 Monad

原文链接: http://colobu.com/2017/09/30/functor-applicative-and-monad/

0     0

评价列表(0)