>>> from pf import * >>> l = range(5) >>> map_list(lambda x: x**2, l) [0, 1, 4, 9, 16] >>> it1 = map_iter(lambda x: x**2, l) >>> iter(it1) is it1 True >>> list(it1) [0, 1, 4, 9, 16] >>> list(it1) [] >>> it1 = map(lambda x: x**2, l) >>> iter(it1) is it1 True >>> list(it1) [0, 1, 4, 9, 16] >>> filter_list(lambda x: x % 2 == 0, l) [0, 2, 4] >>> it1 = filter_iter(lambda x: x % 2 == 0, l) >>> iter(it1) is it1 True >>> list(it1) [0, 2, 4] >>> it1 = filter(lambda x: x % 2 == 0, l) >>> iter(it1) is it1 True >>> list(it1) [0, 2, 4] >>> reduce_list(lambda s, x: s + x, l, 0) 10 >>> reduce_iter(lambda s, x: s + x, l, 0) 10 >>> from functools import reduce >>> reduce(lambda s, x: s + x, l, 0) 10 >>>