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 Monad
s 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 Functor
s, 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?
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With