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.
>>> 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' >>>