Learn about memoization in Python.
We'll cover the following
Memoization is a technique used to speed up function calls by caching their results. The results can be cached only if the function is pure, meaning that it has no side effects or outputs and that it does not depend on any global state.
A trivial function that can be memoized is the sine function