https://softwarepatternslexicon.com/ruby/functional-programming-in-ruby/memoization-techniques/
Memoization Techniques in Ruby: Optimize Performance with Caching