Basically from my understanding... a functor is a container that contains a value and then a mapping (or function) that maps to a new value.
A closure is similar. It