Escreva um iterator filtra que recebe como entrada um iterator it e uma função d e a) devolve o 1o elemento de it b) devolve o proximo elemento de it (novo) que satisfaz d(novo,ultimo) onde ultimo é o ultimo elemento devolvido
O iterator NAO pode expandir o iterator it desnecessariamente
def d(x,y): return abs(x-y)>1 a = iter([1,3,4,8 , -3, -4]) b = filtra(a,d) next(b) -> 1 next(b) -> 3 next(b) -> 8 next(b) -> -3 next(b) -> raise StopIteration