objects that implement map are functors. So, Array is a functor. and Array.filter is a higher order function
a little more abstract..
a functor is an object which acts as a container for a value, which then allows you to APPLY one or more functions to that value, and returns a new functor (in case of .map(), an Array) containing the transformed value.