https://pragdev.medium.com/why-any-software-engineer-should-learn-functional-programming-8da73e890bc8