func_code: def maximum(l, current_max=None):
      if not l:
          return current_max
      first = l.pop()
      if current_max == None or first > current_max:
          return maximum(l, first)
      return maximum(l, current_max)