I = lambda f, s, e, v: reduce(lambda k,l: k + l*v,
map(f,
map(lambda k: float(k)*v,
range(int(s/v), int(e/v)))))
previous = 0
for n in range(0,10):
interval = 1.0/(2**n)
print "Integrating x^2 from %d to %d using interval %f:" % (
start, end, interval)
integral = I(polynomial, 0, 10, interval)
print "%f (difference to previous calculation %f)" % (
integral, integral-previous)
previous = integral