Combinar Funcions (I) X47122


Statement
 

pdf   zip

thehtml

Considerem el següent patró per combinar dues funcions binàries (que requereixen dos paràmetres), f i g, amb quatre paràmetres, a, b, c i d: f(g(a, b), g(c, d)). És a dir, g s’aplica a la primera parella i també a la segona, i tot seguit f s’aplica a tots dos resultats. Per exemple, max(min(1,2),min(3,4)) retorna 3.

Escriure una funció comb(f,g,a,b,c,d) que rebi com a paràmetres tots els ingredientes necessaris, i avaluï f(g(a,b),g(c,d))

Entrada

La funció té sis paràmetres, dues funcions i quatre paràmetres més que s’han d’ajustar als requeriments d’entrada de g. Fixeu-vos que aquestes funcions paràmetre no poden ser de qualsevol manera, ja que el resultat d’aplicar g ha d’estar dins el domini de la funció f.

Observacions

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
>>> comb(max,min,1,2,3,4)              # Calcula max(min(1,2),min(3,4))
3
>>> from operator import add, mul
>>> comb(add, mul, 1, 2, 3, 4)         # Calcula (1*2) + (3*4)
14
>>> comb(mul, add, 1, 2, 3, 4)         # Calcula (1+2) * (3+4)
21
>>> comb(mul, add, 'aa', 'bb', 2, 3)   # Calcula ('aa'+'bb') * (2+3)
'aabbaabbaabbaabbaabb'
>>>
Information
Author
Jordi Delgado
Language
Catalan
Official solutions
Python
User solutions
Python