def iscanr(col, func=add, acc=None):
'''
Use a given accumulator value to build a stream of values obtained
by repeatedly applying acc = func(next(list), acc) from the right.
WARNING: Right folds and scans will blow up for infinite generators!
'''
try:
col = reversed(col)
except TypeError:
col = reversed(list(col))
if acc is not None:
col = chain([acc], col)
for element in itools.accumulate(col, func):
yield element
评论列表
文章目录