Functor类型背后的历史是什么?

Mik*_*cki 11 haskell functor category-theory

我试图深入理解Monad类的层次结构.当然,部分原因是看到了很多例子,但我对这些课程的首次发现历史及其动机特别感兴趣.

我知道Monad最初是作为Haskell中IO问题的解决方案,并且熟悉Moggi和Wadler在1989 - 92年引入它们的论文.

我还看到Applicatives了Conor McBride和Ross Paterson的"有效的应用程序设计"的介绍.

我的问题是什么推广Functor,他们什么时候出现?我认为它必须是Monad因为Functor它不是一个超类,但是从LISP的早期开始就没有人使用广义的地图函数?

Phi*_* JF 14

Functor在Haskell报告的1.3版本中,它标准化了monadic IO和更高级别的类型.因此,Functor类型类与monad类型类一样古老.更重要的Functor是,琼斯的论文中引入"构造函数类"的第一个激励例子!你可能会说Jones的论文推广了这个想法,但正如你所指出的那样,人们长期以来一直想要广义地图.

  • 该论文发表于http://www.cs.tufts.edu/comp/150GIT/archive/mark-jones/fpca93.pdf (6认同)
  • 确实.Jones在Haskell中被采用之前的一段时间内在Gofer中实现了构造函数类.Hugs是Haskell用户的Gofer系统的简称,它被引入以允许Haskell民众访问一些更高级的类型系统,在ghc最前沿的前几天. (5认同)