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