git.fiddlerwoaroof.com
unsorted/pythonsnippets_0049.py
60b28ac5
 class Result(object):
     def __repr__(self): return 'Result: %r' % self.v
     def __init__(self, v): self.v = v
 
 def wrapper(func):
     def _inner(a):
         results = []
         results.append(func(a))
         v = results[-1].next()
         print v
         while not isinstance(v, Result):
             results.append(func(v))
             v = results[-1].next()
             print v
         results.pop()
         if not results: result = v
         else:
             result = results.pop().send(v.v)
             while results:
                 result = results.pop().send(result.v)
9c112cd3
         return result.v
60b28ac5
     return _inner