https://levelup.gitconnected.com/map-filter-reduce-in-declarative-imperative-programming-styles-in-python-c7affa73542a