seed) and must always return a list with two elements ([value, nextSeed]) or False to terminate.fn_generator, that uses a while loop to call the iterator function and yield the value until it returns False.def unfold(fn, seed): def fn_generator(val): while True: val = fn(val[1]) if val == False: break yield val[0] return [i for i in fn_generator([None, seed])]
f = lambda n: False if n > 50 else [-n, n + 10] unfold(f, 10) # [-10, -20, -30, -40, -50]
Subscribe to get resources directly to your inbox. You won't receive any spam! ✌️