何だかよくわからないが書いてみた。
が、意図がよくわかっていないので、よくわからないなりの物にしかならない。

from itertools import imap, ifilter

def compose(*funcs):
    def eval(x):
        for f in funcs:
            x = f(x)
        return x
    return eval

mapany = lambda f: lambda *iterable: imap(f, *iterable)
filterany = lambda f: lambda iterable: ifilter(f, iterable)

def tap(f):
    def eval(iterable):
        a = list(iterable)
        f(a)
        return a
    return eval

def p(a): print a

compose(mapany(lambda x: x**2), tap(p), filterany(lambda x: x > 10))([1,2,3,4])