The term 'functor' has several common meanings:
1. Function object. In object-oriented languages, it is a feature that allows objects to be used like if they were ordinary functions.
2. A mathematical structure which deals with mappings between categories. This concept is a useful abstraction in some programming languages, notably Haskell, where it is implemented as a type class.
3. In OCaml, a module that takes another module as an argument.
- Stackoverflow.com Wiki