Currying

times = lambda a, b : a * b
double = partial(times, 2)
square_and_sum = lambda lst : reduce(tally, map(square1, filter(evenQ, lst)))
filterEven = partial(filter, evenQ)
squareEach = partial(map, square1)
tallyAll = partial(reduce, tally)

square_and_sum = compose(tallyAll, squareEach, filterEven)