https://imsanjams.medium.com/functional-programming-an-introduction-to-lambda-functions-map-filter-and-reduce-a01fad00dca