def memoize(f):
cache = {}
def memoized(*args):
if args in cache:
return cache[args]
else:
cache[args] = f(*args)
return cache[args]
return memoized
@memoize
def f(n):
if n <= 1:
return n
else:
return f(n - 1) + f(n - 2)
12-26