ulkb.util.unfoldr#
- unfoldr(f, x)[source]#
- Right-unfolds x using unpacking function f. - Equivalent to: - def h(t): if f(t) is None: # no more unpacking return [t] else: return [t[0]] + h(t[1]) - Used to recover values which were right-folded. For example: - >>> f = (lambda t: t if isinstance(t, tuple) else None) >>> it = unfold(f, (1, (2, (3, 4)))) >>> list(it) [1, 2, 3, 4]