Escriure una funció ordre(ops) que, donada una llista no buida ops de funcions de dos paràmetres retorna una nova funció de dos paràmetres.
Aquesta funció retornada el que ha de fer és, quan és invocada, ha d’escriure el resultat d’aplicar la primera funció d’ops als arguments que ha rebut, després ha de retornar una funció que aplicarà la segona funció d’ops i així successivament. Quan la funció retornada hagi aplicat la darrera funció d’ops, caldrà que retorni una funció que torni a començar aplicant la primera funció d’ops.
Entrada
La funció té un paràmetre, una llista de funcions de dos paràmetres.
Observacions
Fixeu-vos que la funció demanada ha d’escriure el resultat d’aplicar la funció que pertoca i retornar una funció que faci el que demana l’enunciat. Aquí estem demanant una funció que faci les dues coses, escriure i retornar.
Un cop definida la funció, en provar-la al REPL de Python us hauria de sortir el mateix que podeu observar més avall.
>>> from operator import add, mul, sub >>> funcions = [add, mul, sub] >>> f = ordre(funcions) >>> f = f(1.0,2.0) # aplica add i retorna mul 3.0 >>> f = f(1.0,2.0) # aplica mul i retorna sub 2.0 >>> f = f(1.0,2.0) # aplica sub i torna a començar amb add -1.0 >>> f = f(1.0,2.0) # aplica add i... 3.0 >>> f = f(1.0,2.0) 2.0 >>> f = f(1.0,2.0) -1.0 >>>