code: def compose(*funcs):
      if len(funcs) == 2: f0,f1=funcs; return lambda *a,**kw: f0(f1(*a,**kw))
      elif len(funcs) == 3: f0,f1,f2=funcs; return lambda *a,**kw: f0(f1(f2(*a,**kw)))
      elif len(funcs) == 0: return lambda x:x
      elif len(funcs) == 1: return funcs[0]
      else:
          def composed(*args,**kwargs):
              y = funcs[-1](*args,**kwargs)
              for f in funcs[:0:-1]: y = f(y)
              return y
          return composed