git.fiddlerwoaroof.com
Raw Blame History
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)

        return result.v        

    return _inner