Tren de Funciones X43198


Statement
 

pdf   zip

thehtml

Escribir una función orden(ops) que, dada una lista no vacía ops de funciones de dos parámetros retorna una nueva función de dos parámetros.

Esta función retornada lo que tiene que hacer es, cuando es invocada, tiene que escribir el resultado de aplicar la primera función de ops a los argumentos que ha recibido, después tiene que retornar una función que aplicará la segunda función de ops y así sucesivamente. Cuando la función retornada haya aplicado la última función de ops, será necesario que retorne una función que vuelva a empezar aplicando la primera función de ops.

Entrada

La función tiene un parámetro, una lista de funciones de dos parámetros.

Observaciones

Fijaos que la función pedida tiene que escribir el resultado de aplicar la función que corresponde y retornar una función que haga lo que pide el enunciado. Aquí estamos pidiendo una función que haga las dos cosas, escribir y retornar.

Una vez definida la función, al probarla en el REPL de Python os debería salir lo mismo que podéis observar más abajo.

Sample session
>>> from operator import add, mul, sub
>>> funciones = [add, mul, sub]
>>> f = orden(funciones)
>>> f = f(1.0,2.0) # aplica add y retorna mul
3.0
>>> f = f(1.0,2.0) # aplica mul y retorna sub
2.0
>>> f = f(1.0,2.0) # aplica sub y vuelve a empezar con add
-1.0
>>> f = f(1.0,2.0) # aplica add y...
3.0
>>> f = f(1.0,2.0)
2.0
>>> f = f(1.0,2.0)
-1.0
>>>
Information
Author
Language
Spanish
Translator
Original language
Catalan
Other languages
Catalan
Official solutions
Python
User solutions
Python