updated from Atlas repo

This commit is contained in:
Luciano Ramalho
2014-12-14 01:26:42 -02:00
parent dcd59eef31
commit 33d65dc590
21 changed files with 359 additions and 299 deletions

View File

@@ -0,0 +1,35 @@
"""
Arithmetic progression generator function.
This is almost correct. The only problem is that the first
item in the series may not be of the same type as the rest,
an this may be important to the user::
>>> ap = aritprog_gen(1, .5, 3)
>>> list(ap)
[1, 1.5, 2.0, 2.5]
>>> ap = aritprog_gen(0, 1/3, 1)
>>> list(ap)
[0, 0.3333333333333333, 0.6666666666666666]
>>> from fractions import Fraction
>>> ap = aritprog_gen(0, Fraction(1, 3), 1)
>>> list(ap)
[0, Fraction(1, 3), Fraction(2, 3)]
>>> from decimal import Decimal
>>> ap = aritprog_gen(0, Decimal('.1'), .3)
>>> list(ap)
[0, Decimal('0.1'), Decimal('0.2')]
"""
# BEGIN ALMOST_ARITPROG_ITERTOOLS
import itertools
def aritprog_gen(begin, step, end=None):
ap_gen = itertools.count(begin, step)
if end is not None:
ap_gen = itertools.takewhile(lambda n: n < end, ap_gen)
return ap_gen
# END ALMOST_ARITPROG_ITERTOOLS