Tren de Funcions X43198


Statement
 

pdf   zip

thehtml

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.

Sample session
>>> 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
>>>
Information
Author
Jordi Delgado
Language
Catalan
Official solutions
Python
User solutions
Python