A functor maps a function over elements of a list. It is defined like
this:

class Functor f where
fmap :: (a -> b) -> f a -> f b

Note that f is not really a function but a type constructor.
If it were a function there would be some concrete types that it would
map over. fmap takes a function from one type to another
and a functor applied with one type and returns a functor applied with
another type. Maybe can be turned into a functor:

To the left, v1 is [2,4,6] and v2 is
Just 400. Also to the left is a functor that traverses a
Tree, applying a function to every Node. The
example shown involves a Tree with integer Nodes and the
function that is applied to each Node multiplies
the Node's value by 4.