human
I am working on the file "Python/3 Games/Memoization.ipynb".
The first task is:
The function memoize takes a function f as its argument.  It returns a <em style="color:blue">memoized</em> version of the function f.  This memoized version will store all results in a cache and look them up instead of recomputing them.  
Note that the function object f_memoized that is returned by the function memoize is a so called 
closure.  The reason is that the variable
Cache, which is created in the scope where f_memoized is defined, is stored inside the function object
f_memoized.
Can you write Python program for it?
 Can you provide a the Python program you requested?
assistant
#Here is the Python program you requested.

def memoize(f):
    Cache = {}
    
    def f_memoized(*args):
        if (f, args) in Cache:
            return Cache[(f, args)]
        result = f(*args)
        Cache[(f, args)] = result
        return result
    
    return f_memoized

fib = memoize(fib)