Aplica¶
Dissenya la versió recursiva de l’esquema de recorregut aplica.
Desa al mòdul iesquemes la funció recursiva següent:
- iesquemes.iaplica(funcio, it)¶
Aplica la funció funcio a cada un dels elements de l’iterador it
- Paràmetres:
funcio – funció amb un paràmetre.
it – iterador.
- Tipus de retorn:
iterador
- Retorna:
funcio(seq[0]), funcio(seq[1])..., funcio(seq[-1])
Per exemple:
>>> s = [2, -1, -5, 7, -25] >>> list(iaplica(abs, iter(s))) [2, 1, 5, 7, 25] >>> list(iaplica(lambda x: x**2, iter(s))) [4, 1, 25, 49, 625] >>> list(iaplica(lambda x: x/2, iter(s))) [1.0, -0.5, -2.5, 3.5, -12.5]
Disposes de més jocs de proves al fitxer
test-iaplica.txt i d’una solució al fitxer
iesquemes.py.
Solució recursiva lineal¶
def iaplica(funcio, it):
e = next(it, None)
if e:
r = iaplica(funcio, it)
yield funcio(e)
yield from r