`objects` that implement `map` are functors. So, `Array` is a *functor*. and `Array.filter` is a *higher order function* **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.