在Haskell中,map函数是一个函子吗?

Hop*_*l_O 1 haskell category-theory

地图的类型是:(a-> b) - > [a] - > [b]

而仿函数fmap的类型是:

Functor f =>(a + b) - > fa - > fb我在维基百科上读到地图是一个多态态射,而fmap是一个多型态射,但这并没有真正为我清理事物.

所以我的问题是:地图功能是一个仿函数吗?

tho*_*ron 8

在Haskell术语中,fmap是类型类中的一种方法Functor,而不是仿函数本身.[],, Maybe...是实例化类的类型构造函数Functor,滥用语言,你可以说"也许是一个算符".

在数学术语中,仿函数(或者更具体地说,在这种情况下,Hask类中的endofunctor,Haskell类型的类别)由两个映射组成:第一个从类型到另一个,第二个从箭头(a -> b)到另一个(f a -> f b)保留结构.从这个意义上说,Maybe是第一个将一种类型映射到另一种类型的箭头,比如说Int,Maybe Intfmapfor Maybe是第二个箭头.