code: def memoize(fn):
      
      memo = {}
  
      @wraps(fn)
      def wrapper(*args, **kwargs):
          if not memoize.disabled:
              key = pickle.dumps((args, kwargs))
              if key not in memo:
                  memo[key] = fn(*args, **kwargs)
              value = memo[key]
          else:
              # Memoize is disabled, call the function
              value = fn(*args, **kwargs)
  
          return value
  
      return wrapper
docs: Caches previous calls to the function.