I found this tutorial on Monads and Applicatives helpful http://adit.io/posts/2013-04-17-functors,_applicatives,_and_...
I found this tutorial on Monads and Applicatives helpful http://adit.io/posts/2013-04-17-functors,_applicatives,_and_...
Saunders Mac Lane took the word "functor" from Carnap and gave it a particular definition in category theory (when founding category theory with Samuel Eilenberg). The ML languages and Haskell use the word "functor" in reference to this category theory sense of the word.
But category theory is not actually where the word "functor" originated. So perhaps we shouldn't say that C++ got its use of the word wrong, but rather, that there were simply two independent paths of evolution of technical uses of the word since its original creation by Rudolf Carnap for use in philosophy of language.
In any case it's annoying to have different languages adopting the same word to mean vaguely related but actually completely different things. I suspect that is why a lot of tutorials about Monads skip talking about Functors altogether which ends up making the whole thing more confusing.
The math definitions. These were invented by Saunders Mac Lane and Samuel Eilenberg back in 1945ish, about a year before ENIAC was built.
Though the suppose the dissonance in naming point still applies.
In mathematics, those things are just called "functions". :P