def accsum(it): """Yield accumulated sums of iterable: accsum(count(1)) -> 1,3,6,10,...""" return drop(1, ireduce(operator.add, it, 0))
def fibonacci(): """Generate fibonnacci serie""" get_next = lambda (a, b), _: (b, a+b) return (b for (a, b) in ireduce(get_next, count(), (0, 1)))