def sequence_input_funcs(input_funcs):
    """ Returns a function that
           - is like (the first element of input_funcs) the first time that it's called
           - is like (the second element of input_funcs) the second time that it's called, etc.
           - just returns None (ignoring its arguments) when there are no more elements of input_funcs
    """
    it = iter(input_funcs)
    def choose(*args):
        try:
            input_func = next(it)
        except StopIteration:
            return None
        return input_func(*args)
    return choose