Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What's the history behind the Functor type class?

I'm trying to gain a really deep understanding of the Monad hierarchy of classes. Part of that is, of course, seeing lots of examples, but I'm particularly interested in the history of how these classes were first discovered and their motivations.

I understand that Monads came about initially as a solution to the IO problem in Haskell, and am familiar with papers by Moggi and Wadler in 1989-92 that introduced them.

I've also seen where Applicatives were introducted in Conor McBride and Ross Paterson's "Applicative Programming with Effects."

By my question is what popularized Functors, and when did they come about? I assume it must be after Monad since Functor is not a superclass, but haven't people been using generalized map functions since the early days of LISP?

like image 411
Mike Izbicki Avatar asked Jun 02 '13 07:06

Mike Izbicki


1 Answers

Functor was in the 1.3 version of the Haskell report which is what standardized both monadic IO and higher kinded type classes. So, the Functor typeclass is as old as the monad typeclass. And, what is more, Functor is the first motivating example in Jones' paper introducting "constructor classes!" You might say the Jones paper popularized the idea, but as you point out people have wanted generalized maps for a long time indead.

like image 161
Philip JF Avatar answered Nov 09 '22 12:11

Philip JF