>>28
内包表記って「リストを返す」もんだから、その時点でreduce()とは別物
まあおおざっぱに言ってmap()/filter()の相当物だわな
無理に書けばこんなコードになる

def make_accumulator(init, f):
    _ = [ init ]
    def thunk(x):
        _[0] = f(_[0], x)
        return _[0]
    return thunk

def my_reduce(f, xs, init):
    acc = make_accumulator(init, f)
    return [acc(x) for x in xs][-1]

print my_reduce(lambda x, y: x + y, range(1, 11), 0)