On Feb 2, 11:09 pm, Kay Schluehr <[EMAIL PROTECTED]> wrote: [snip] While you're waiting for it to be implemented, you can build your own version as a decorator. Here's an example written in haste:
>>> class composer(object): def __init__(self, *funcs): self.funcs = funcs def __and__(self, other): if isinstance(other, composer): return composer(*(self.funcs+other.funcs)) else: return composer(*(self.funcs+(other,))) def __call__(self, *args, **kargs): for func in reversed(self.funcs): args = (func(*args, **kargs),) if kargs: kargs = {} return args[0] >>> @composer def double(x): return 2*x >>> @composer def square(x): return x*x >>> double_square = double & square >>> square_double = square & double >>> double_square(2) 8 >>> square_double(2) 16 >>> double_square(3) 18 >>> square_double(3) 36 >>> double_square(4) 32 >>> square_double(4) 64 Probably not the best implementation, but you get the idea. -- http://mail.python.org/mailman/listinfo/python-list