函子 (函数式编程)
概述
class Functor f where
fmap :: (a -> b) -> f a -> f b
具有叫做“函子定律”的条件:
fmap id = id
fmap (g . h) = (fmap g) . (fmap h)
在Scala中使用高种类类型:
trait Functor[F[_]] {
def map[A,B](a: F[A])(f: A => B): F[B]
}
其简单的例子是可选类型和搜集类型。函子可用于建模“函数作用”来向仍未完成的计算应用一个函数。
在C++中,名字“函子”指称的是函数对象而非这里的定义。
参见
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.