https://funkymuse.github.io/posts/higher-order-functions/
Higher order functions, how, why and what not to do. - FunkyMuse